客户端服务器应用java

时间:2011-01-02 13:04:51

标签: java client-server

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

ServerSocket ServerSock=new ServerSocket(9000);

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

Socket sock=new Socket("127.0.0.1","9000");

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

提前完成了!

3 个答案:

答案 0 :(得分: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());

答案 1 :(得分:2)

服务器接受ServerSock.accept()的客户端。 Here是一个教程。

答案 2 :(得分:0)

嗯,客户端知道要连接的服务器的IP和端口 然后客户端尝试连接服务器 为此,将为客户端进程分配一个ephimeral端口,以便如果服务器的TCP层接受请求连接(服务器正在侦听并尝试接受连接),则服务器可以使用客户端套接字。客户端的IP和端口。
所以现在服务器如何回到客户端。