Java 外行术语中的ServerSocket构造函数
这项声明会做什么:Java 外行术语中的ServerSocket构造函数,java,sockets,serversocket,Java,Sockets,Serversocket,这项声明会做什么: ServerSocket ss=new ServerSocket(4646); 请用外行术语解释。这会将您的ServerSocket绑定到本地计算机上的端口4646 然后,您可以使用接受此连接上的套接字 // pick up server side of the socket Socket s = ss.accept(); 现在,客户机可以连接到服务器,建立套接字连接,如下所示 // pick up client side of the socket, this is i
ServerSocket ss=new ServerSocket(4646);
请用外行术语解释。这会将您的ServerSocket绑定到本地计算机上的端口4646 然后,您可以使用接受此连接上的套接字
// pick up server side of the socket
Socket s = ss.accept();
现在,客户机可以连接到服务器,建立套接字连接,如下所示
// pick up client side of the socket, this is in a different program (probably)
Socket connectionToServer = new Socket("myserver",4646);
这会将您的ServerSocket绑定到本地计算机上的端口4646 然后,您可以使用接受此连接上的套接字
// pick up server side of the socket
Socket s = ss.accept();
现在,客户机可以连接到服务器,建立套接字连接,如下所示
// pick up client side of the socket, this is in a different program (probably)
Socket connectionToServer = new Socket("myserver",4646);
直截了当地说:
创建绑定到指定端口的服务器套接字
什么是服务器套接字
此类实现服务器套接字。服务器套接字等待请求通过网络传入。它基于该请求执行一些操作,然后可能将结果返回给请求者
直截了当地说:
创建绑定到指定端口的服务器套接字
什么是服务器套接字
此类实现服务器套接字。服务器套接字等待请求通过网络传入。它基于该请求执行一些操作,然后可能将结果返回给请求者
创建绑定到服务器的服务器套接字
指定的端口。0端口将创建一个
任何空闲端口上的套接字
创建绑定到服务器的服务器套接字
指定的端口。0端口将创建一个
任何空闲端口上的套接字
该语句有效地告诉JVM在为传入连接指定的端口(4646)上侦听。它本身并不意味着什么,因为您必须将传入连接带到该端口,并使用它们来构建正常的
Socket
对象,然后这些对象将用于输入/输出数据
您可以说,ServerSocket
是在客户端和服务器之间创建真正TCP套接字的对象。当您创建它时,JVM钩住操作系统,告诉它将到达该端口的连接分派到您的程序
您通常会这样做:
public AcceptThread extends Thread {
public void run() {
ServerSocket ss = new ServerSocket(4646);
while (true) {
Socket newConnection = ss.accept();
ClientThread thread = new ClientThread(newConnection);
thread.start();
}
}
}
因此,您将接受传入连接并为它们打开一个线程。该语句有效地告诉JVM在为传入连接指定的端口(4646)上侦听。它本身并不意味着什么,因为您必须将传入连接带到该端口,并使用它们来构建正常的
Socket
对象,然后这些对象将用于输入/输出数据
您可以说,ServerSocket
是在客户端和服务器之间创建真正TCP套接字的对象。当您创建它时,JVM钩住操作系统,告诉它将到达该端口的连接分派到您的程序
您通常会这样做:
public AcceptThread extends Thread {
public void run() {
ServerSocket ss = new ServerSocket(4646);
while (true) {
Socket newConnection = ss.accept();
ClientThread thread = new ClientThread(newConnection);
thread.start();
}
}
}
因此,您将接受传入的连接并为它们打开一个线程。@user628662服务器套接字是您的服务器用来告诉世界“我愿意接受连接!继续连接我吧!”如果您不知道什么是网络套接字,请阅读此文,也许还有更多…@glowcoder您所说的什么意思“然后您可以在此连接上接受套接字”?请解释套接字是您用来连接到某个东西的。如果我要连接到服务器,我必须打开到该服务器的套接字。将套接字视为通过internet的导线,我可以使用它将我的程序直接连接到您的程序(在这种关系中,我们称我的程序为客户机,称你的程序为服务器。)@user628662服务器套接字是你的服务器用来告诉世界“我愿意接受连接!继续连接我吧!”如果你不知道什么是网络套接字,请阅读本文,也许还有更多…@glowcoder你的意思是什么然后,您可以在此连接上接受套接字“”。请解释套接字是您用来连接到某个对象的。如果我要连接到服务器,我必须打开到该服务器的套接字。请将套接字视为通过internet的导线,我可以用它将我的程序直接连接到您的程序(在这种关系中,我们将我的程序称为客户机,将你的程序称为服务器。)@Jack让我验证一下,ServerSocket(4646)预订了服务器的端口4646。现在所有来自客户机的传入连接请求都将在端口4646上。是这样吗?“现在所有来自客户机的传入连接请求都将在端口4646上“:这并不意味着什么。在侦听模式下打开端口后(查看TCP/IP rfc)该端口将可供尝试联系该特定端口的客户端使用。否则,操作系统将拒绝客户端连接到4646的任何尝试,而不是将其分派到JVM。@Jack
Socket newConnection=ss.accept();
,此处accept返回一个套接字对象,该对象绑定到服务器的4646端口和客户端的某个编号端口。我说的对吗?是的,你说的对。这是因为TCP/IP协议使用了多路复用技术,它同时使用IP地址和两个端口(客户端和服务器)为了区分特定的TCP连接。@Jack让我验证一下,ServerSocket(4646)记录了服务器的端口4646。现在所有来自客户端的传入连接请求都将位于端口4646。是这样吗?“现在所有来自客户端的传入连接请求都将位于端口4646”:这并不意味着什么。在以侦听模式打开端口后(查看TCP/IP rfc)该端口将可供尝试联系该特定端口的客户端使用。否则,操作系统将拒绝客户端连接到4646的任何尝试,而不是将其分派到JVM。@JackSocket newConnection=ss.accept();
,此处accept返回一个套接字对象,该对象绑定到服务器的4646端口和客户端的某个编号端口。我说得对吗?是的,你说得对。这可能是由于TCP/IP协议使用多路复用技术,该技术使用IP地址和两个端口(客户端和服务器)来区分特定端口