【问题标题】:to read the packet of bytes on client(client Socket) from server(ServerSocket) using java使用java从服务器(ServerSocket)读取客户端(客户端Socket)上的字节包
【发布时间】:2010-09-07 14:02:02
【问题描述】:

我是新人。 我是一名 Java 开发人员(新人),目前我正在从事 BSE 项目,我面临着从服务器(服务器套接字)读取客户端(客户端套接字)上的字节包的问题。如果你能帮助我,请帮助我。

提前致谢

【问题讨论】:

  • 您遇到什么问题,需要什么帮助?

标签: java sockets client-server packet


【解决方案1】:

好吧,如果您想直接与数据包交互,那么您需要使用DatagramSocket 而不是常规的SocketServerSocket

然后,您应该visit this link 看到一个关于如何开始发送​​和接收单个数据包的好教程。

基本思想是客户端或服务器在等待其伙伴使用send() 发送数据包时将阻塞recieve() 调用。

如果您对问题中指出的单个数据包不感兴趣,那么您将需要使用SocketServerSocket。在两者之间进行通信的第一步涉及类似于以下代码:

//Server
// this call will block until the client tries to connect to the server
Socket cientConn = new ServerSocket(8878).accept();
// now you can use the connection's input and output streams to send data

/******************/

// Client
Socket serverConn = new Socket(addressOfServer, 8878);
// now you can use the connections input and output streams

在您建立连接后,您将拥有基本上 2 个读/写循环。一个在客户端,一个在服务器。

while(true) [
    // check for data from an input stream
    ...
    // respond with message back
}

客户端和服务器需要一个类似的循环。

【讨论】:

  • 谢谢,我已经创建了整个服务器套接字,我已经成功地在服务器套接字上写入了数据包,我也创建了客户端套接字,但是我无法读取数据包,所以请给我关于读取数据包的想法(代码或示例)在客户端套接字上,并清楚地告诉我是否可以在客户端套接字上读取数据包,如果没有,那么应该使用什么来代替客户端套接字和服务器套接字。
  • 我正在创建面向连接的服务器(TCP)。
  • 谢谢,我正在创建面向连接的服务器/客户端(TCP)套接字。我已经创建了整个服务器套接字,我已经成功地在服务器套接字上写入了数据包,我也创建了客户端套接字,但我不能读取数据包,所以请给我关于在客户端套接字上读取数据包(代码或示例)的想法,并清楚地告诉我是否可以在客户端套接字上读取数据包,如果没有,那么应该使用什么来代替客户端套接字和服务器套接字。
  • @deepak,你的问题太模糊了。我已经用更多信息更新了我的答案,但您能否用更多信息更新您的问题?
猜你喜欢
  • 1970-01-01
  • 2018-06-24
  • 1970-01-01
  • 1970-01-01
  • 2016-02-23
  • 2014-02-13
  • 2014-10-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多