客户端服务器应用java

Pav*_*ara 3 java client-server

我了解到Server应用程序在特定端口中创建了一个ServerSocket,

ServerSocket ServerSock=new ServerSocket(9000);
Run Code Online (Sandbox Code Playgroud)

和客户端建立到服务器应用程序的套接字连接,

Socket sock=new Socket("127.0.0.1","9000");
Run Code Online (Sandbox Code Playgroud)

所以客户端知道服务器的IP地址和端口,我很困惑服务器如何以及何时获得有关客户端的知识.请帮忙.

Thanx提前!!!

jbx*_*jbx 6

服务器正在"监听"来自客户端的传入连接.想象一下,端口号是门号,服务器正在门口等候客人.

因此,当服务器应用程序执行serverSock.accept()时,它实际上会阻塞并等待客户端到达.

一旦客户端尝试连接,accept()方法将取消阻塞自身并返回另一个Socket实例,这次代表客户端.

通过这个新的Socket实例,您可以知道客户端是谁.服务器应用程序代码的一个示例是:

ServerSocket serverSock=new ServerSocket(9000);

Socket clientSock = serverSock.accept(); //this will wait for a client

System.out.println("Yay we have a guest! He's coming from " + clientSock.getInetAddress());
Run Code Online (Sandbox Code Playgroud)

  • @pavithra - 实际上你可能需要满足多个连接.因此,您需要将带有accept()的行放在循环中,并且每次有新客户端进入时,您都会创建一个新的Thread,以便在服务器等待另一个客户端时单独处理客户端. (2认同)