使用java从服务器(ServerSocket)读取客户端(客户端套接字)上的字节数据包

时间:2010-09-07 14:02:02

标签: java sockets client-server packet

我是一个新人。 我是一个java开发人员(更新),目前我正在研究BSE项目,我面临着从服务器(服务器套接字)读取客户端(客户端套接字)上的字节数据包的问题。如果你可以帮助我那么请帮助我。

提前致谢

1 个答案:

答案 0 :(得分:1)

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

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

基本思路是客户端或服务器在等待其合作伙伴使用recieve()发送数据包时将阻止send()呼叫。

如果您对问题中指明的各个数据包不感兴趣,那么您需要使用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
}

您需要为客户端和服务器提供类似的循环。