Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 外行术语中的ServerSocket构造函数_Java_Sockets_Serversocket - Fatal编程技术网

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。@Jack
Socket newConnection=ss.accept();
,此处accept返回一个套接字对象,该对象绑定到服务器的4646端口和客户端的某个编号端口。我说得对吗?是的,你说得对。这可能是由于TCP/IP协议使用多路复用技术,该技术使用IP地址和两个端口(客户端和服务器)来区分特定端口