TCP多线程

来源:互联网 发布:聂风入魔知乎 编辑:程序博客网 时间:2024/06/03 19:47

Client端口

package TCPThread;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.Socket;/* *  实现TCP客户端,连接到服务器 *  和服务器实现数据交换 *  实现TCP客户端程序的类 java.net.Socket *   *  构造方法: *      Socket(String host, int port)  传递服务器IP和端口号 *      注意:构造方法只要运行,就会和服务器进行连接,连接失败,抛出异常 *       *    OutputStream  getOutputStream() 返回套接字的输出流 *      作用: 将数据输出,输出到服务器 *       *    InputStream getInputStream() 返回套接字的输入流 *      作用: 从服务器端读取数据 *       *    客户端服务器数据交换,必须使用套接字对象Socket中的获取的IO流,自己new流,不行 */public class TCPClient {public static void main(String[] args)throws IOException {//创建Socket对象,连接服务器Socket socket = new Socket("127.0.0.1", 6000);//通过客户端的套接字对象Socket方法,获取字节输出流,将数据写向服务器OutputStream out = socket.getOutputStream();out.write("服务器OK".getBytes());//读取服务器发回的数据,使用socket套接字对象中的字节输入流InputStream in = socket.getInputStream();byte[] data = new byte[1024];int len = in.read(data);System.out.println(new String(data,0,len));socket.close();}}

线程端口TCP

package TCPThread;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.ServerSocket;import java.net.Socket;/* *  实现TCP服务器程序 *  表示服务器程序的类 java.net.ServerSocket *  构造方法: *    ServerSocket(int port) 传递端口号 *   *  很重要的事情: 必须要获得客户端的套接字对象Socket *    Socket  accept() */public class TCPServerRunable implements Runnable{private Socket socket;public TCPServerRunable(Socket socket) {this.socket = socket;}public void run(){try {InputStream in = socket.getInputStream();byte[] data = new byte[1024];int len = in.read(data);System.out.println(new String(data,0,len));//服务器向客户端回数据,字节输出流,通过客户端套接字对象获取字节输出流OutputStream out = socket.getOutputStream();out.write("收到,谢谢".getBytes());socket.close();}catch (Exception e) {// TODO: handle exception}}}

服务器端

package TCPThread;import java.io.IOException;import java.net.ServerSocket;import java.net.Socket;public class TCPServer {public static void main(String[] args)throws IOException {ServerSocket serverSocket = new ServerSocket(6000);while(true) {Socket socket = serverSocket.accept();new Thread(new TCPServerRunable(socket)).start();}}}


原创粉丝点击