当前位置: 首页 > 知识库问答 >
问题:

套接字和服务器套接字通信不清楚

许自强
2023-03-14

我想找个人来澄清一个我相信我有的误解。我在读Java上的套接字编程,并不真正理解事情的实际流程是什么。以下是我对以下场景的两种可能的解释。

客户端

  1. 创建套接字实例套接字s=新套接字(“服务器IP”,9999);
    null

服务器接受客户端之后的连接会是这样的吗?(客户端与服务器创建的套接字通信,而不是与服务器套接字通信)

或者图表会像这样吗?(客户端通过ServerSocket与服务器保持通信。服务器通过接受连接时创建的套接字进行通信。)

共有1个答案

南宫嘉
2023-03-14

套接字是两个主机(客户端和服务器)之间连接的抽象。一旦建立了连接,客户端和服务器主机就从套接字获取输入和输出流,并使用那些流相互发送数据。(请在此处阅读更多详细信息)。

在客户端:

  • socket socket=新套接字(“服务器IP”,9999);
    null
    null
    null

启动侦听TCP套接字(服务器套接字),该套接字绑定到已知本地端口,用于侦听和接受来自客户端的连接。

  • socket socket=ss.accept();

阻止当前线程,直到客户端连接,并返回已接受连接的已连接套接字。注意,这里它返回与客户端相同类型的java.net.socket。与客户端类似,服务器可以使用套接字中的outputStreaminputStream来写入和读取数据

 类似资料:
  • 我对套接字有点陌生,我正在尝试编写一个程序,在这个程序中,我基本上可以从客户端程序向服务器程序发送一些简单的请求。现在我只想在客户端有1或2个选项供用户选择。例如,如果用户在客户端选择“选项1”,那么服务器会返回一条消息“您选择选项1”,以此类推,但我不知道如何读取服务器上从客户端发送的输入。 客户代码: 服务器代码: 我需要在Clinet中使用两个不同的BufferedReader吗?一个用于用

  • 我有以下代码要(尝试)写入服务器: 我在远程计算机上的服务器代码中有一个断点,我有一个通过这个套接字通信的Visual Basic程序。我运行了Visual Basic代码,并(反复)验证服务器是否在那里,监听这个套接字,并且通过运行该程序可以触及断点。 当我运行这个程序时,我不会碰到断点。我尝试了设置套接字的各种方法,例如只使用“new socket()”实例化套接字,然后使用setter方法设

  • 线程“main”java.net.ConnectException:连接超时:在java.net.dualStackplainsockeTimpl.Connect0(本机方法)在java.net.dualStackplainsockeTimpl.socketConnect(DualStackplainsockeTimpl.java:69)在java.net.abstractplainsockeTi

  • 问题内容: 我试图用没有gui的服务器连接带有gui的客户端。连接已完成,但我看不到这两个应用程序之间的任何消息。(我应该在客户端中找到SERVER HERE,在服务器中找到CLIENT HERE) 客户端连接代码: (输入和输出在此客户端类扩展到的GUI类中定义。定义为“受保护的BufferedReader输入;受保护的PrintWriter输出;”) 另外,服务器代码: 连接似乎还可以,所以我

  • 我正在尝试连接一个带有gui的客户端和一个没有gui的服务器。连接正在进行中,但我看不到这两个应用程序之间的任何消息。(我应该将服务器放在客户端中,而将客户端放在服务器中) 客户端连接代码: PS:我也在服务器中尝试了PrintWriter,也尝试了try catch in stream语句,问题仍然存在。

  • 我有这个代码可以在eclipse中与android Studio中的客户端通信服务器,我使用套接字,客户端向服务器发送消息,服务器读取该消息并确定一切正常,但当服务器向客户端发送消息时,客户端不强制任何东西;这是代码 还有这个 此代码是服务器代码的一部分,如果您需要客户端代码(Android Studio),请告诉我。 我需要帮助拜托