TCP通信的 实现发1收1
package TCP1;//完成TCP通信的 实现发1收1import java.io.DataOutputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.Socket;public class Client {public static void main(String[] args)throws Exception {//1:创建Socket对象并同时请求服务端程序的链接Socket socket= new Socket("127.0.0.1",8888);//2:从Socket通信管道中得到一个字节输出流 用来数据发给到服务器OutputStream os= socket.getOutputStream();//3:把低级的输出流封装成数据输出流DataOutputStream dos= new DataOutputStream(os);//开始写数据出去了dos.writeUTF("在一起好吗?");System.out.println("发送完成");dos.close(); //释放资源IO流socket.close(); //释放网络资源TCP通信}}
package TCP1;// 完成TCP通信服务端 实现发1收1import java.io.DataInputStream;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;public class Server {public static void main(String[] args) throws Exception {System.out.println("===============启动服务端================");//1:创建serverSocket的对象 同时为服务端注册端口ServerSocket serverSocket = new ServerSocket(8888);//2:使用serverSocket 对象 调用accept 方法 等待客户端连接请求Socket socket= serverSocket.accept();//3:从socket管道中得到一个字节输入流InputStream inputStream = socket.getInputStream();//4: 把原始的字节输入流封装成输入流DataInputStream dis= new DataInputStream(inputStream);//5:使用数据输入流 读取客户端发箍来的数据String rs= dis.readUTF();System.out.println(rs);// 6:谁发的数据获取IPSystem.out.println(socket.getRemoteSocketAddress());System.out.println(socket.getPort());dis.close(); //释放资源IO流socket.close(); //释放网络资源TCP通信}}
完成TCP通信的 多发多收
package TCP2;//完成TCP通信的 多发多收import java.io.DataOutputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.util.Scanner;public class Client {public static void main(String[] args)throws Exception {//1:创建Socket对象并同时请求服务端程序的链接Socket socket= new Socket("127.0.0.1",8888);//2:从Socket通信管道中得到一个字节输出流 用来数据发给到服务器OutputStream os= socket.getOutputStream();//3:把低级的输出流封装成数据输出流DataOutputStream dos= new DataOutputStream(os);Scanner sr=new Scanner(System.in);while (true) {//开始写数据出去了System.out.print("请说: ");String msg= sr.nextLine();dos.writeUTF(msg);dos.flush();//用户输入exit 退出if ("exit".equals(msg)){System.out.println("欢迎下次光临 退出成功");dos.close();socket.close();break;}}}}
package TCP2;// 完成TCP通信服务端 多发多收import java.io.DataInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;public class Server {public static void main(String[] args) throws Exception {System.out.println("===============服务端启动成功================");//1:创建serverSocket的对象 同时为服务端注册端口ServerSocket serverSocket = new ServerSocket(8888);//2:使用serverSocket 对象 调用accept 方法 等待客户端连接请求Socket socket= serverSocket.accept();//3:从socket管道中得到一个字节输入流InputStream inputStream = socket.getInputStream();//4: 把原始的字节输入流封装成输入流DataInputStream dis= new DataInputStream(inputStream);while (true) {//5:使用数据输入流 读取客户端发箍来的数据try {String rs= dis.readUTF();System.out.println(rs);} catch (Exception e) {System.out.println(socket.getRemoteSocketAddress()+"离线了!");socket.close();dis.close();break;}// 6:谁发的数据获取IP// System.out.println(socket.getRemoteSocketAddress());//System.out.println(socket.getPort());}}}