TCP编程
TCP编程是面向连接的数据传输,所以需要时用IO流来建立连接。
用户输出流到服务器,服务器输入流接收数据。
服务器输出流到用户,用户输入流接收。
基本流程
服务器端
- 创建服务器端:ServerScoekt 对象
- 阻塞时监听用户接入:accep() 返回Socket对象
- 建立连接:与返回的Socket对象建立IO流,getInputStream()方法与getOutputStream方法
- 处理数据
- 关闭流,关闭Socket对象,关闭服务器(一般不关服务器)
用户端
- 创建Socket对象:Socket(targetHost,targetPort)
- 建立连接:创建输出流
- 传输数据:输入流写
- 关闭流
- 关闭Socket对象
基础版本示例
服务器端
package _20191218; import java.io.DataInputStream; import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; /** * 通过tcp传输数据的服务端,实现的是服务器端 * @author TEDU * */ public class TCPServer { public static void main(String[] args) throws IOException { System.out.println("-----server------"); //建立服务器 ServerSocket server = new ServerSocket(6677); //阻塞式接收Socket Socket client = server.accept(); //建立连接 DataInputStream dis = new DataInputStream(client.getInputStream());//选择需要的合适的流,不需要如本文的流 //接收数据并处理 Object obj1 = dis.readUTF(); Object obj2 = dis.readInt(); Object obj3 = dis.readFloat(); System.out.println(obj1); System.out.println(obj2); System.out.println(obj3); //关闭流及服务器 dis.close(); client.close(); //server.close()//服务器无需关闭 } }
用户端
package _20191218; import java.io.DataOutputStream; import java.io.IOException; import java.net.Socket; import java.net.UnknownHostException; public class TCPClient { public static void main(String[] args) throws UnknownHostException, IOException { System.out.println("-----client------"); //新建客户端Socket Socket client = new Socket("localhost",6677); //建立连接 DataOutputStream dos = new DataOutputStream(client.getOutputStream()); //发送数据 String str = "fuck"; dos.writeUTF(str); dos.writeInt(89); dos.writeFloat(213.4f); //关闭流和连接 dos.close(); client.close(); } }
测试结果
模拟登陆服务器
原文地址:https://www.cnblogs.com/Scorpicat/p/12059021.html
时间: 2024-10-10 01:31:28