【发布时间】:2010-09-07 14:02:02
【问题描述】:
我是新人。 我是一名 Java 开发人员(新人),目前我正在从事 BSE 项目,我面临着从服务器(服务器套接字)读取客户端(客户端套接字)上的字节包的问题。如果你能帮助我,请帮助我。
提前致谢
【问题讨论】:
-
您遇到什么问题,需要什么帮助?
标签: java sockets client-server packet
我是新人。 我是一名 Java 开发人员(新人),目前我正在从事 BSE 项目,我面临着从服务器(服务器套接字)读取客户端(客户端套接字)上的字节包的问题。如果你能帮助我,请帮助我。
提前致谢
【问题讨论】:
标签: java sockets client-server packet
好吧,如果您想直接与数据包交互,那么您需要使用DatagramSocket 而不是常规的Socket 和ServerSocket。
然后,您应该visit this link 看到一个关于如何开始发送和接收单个数据包的好教程。
基本思想是客户端或服务器在等待其伙伴使用send() 发送数据包时将阻塞recieve() 调用。
如果您对问题中指出的单个数据包不感兴趣,那么您将需要使用Socket 和ServerSocket。在两者之间进行通信的第一步涉及类似于以下代码:
//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
}
客户端和服务器需要一个类似的循环。
【讨论】: