我在使用Java中的套接字时遇到了一些问题。我正在创建一个不断需要将数据发送到服务器的应用程序。数据通过客户端的套接字发送。我正在使用以下代码:如何在Java中使用套接字
serverAddr = InetAddress.getByName(ipAddress);
while(send)
{
soc=new Socket(serverAddr,8210);
outStream=soc.getOutputStream();
outStream.write(data);
outStream.close();
}
上述代码工作正常,没有问题。 这里我在每个循环中创建一个Socket
的新对象,我认为这不是一个好的实现方法。如何使用一个Socket
将数据发送到服务器? (我不希望创建在每一个循环的新对象)
这里是我写在C#服务器的代码:
while (true)
{
Socket s = listener.AcceptSocket();
NetworkStream ns = new NetworkStream(s);
int d;
while ((d = ns.ReadByte()) >= 0)
{
//Process data here
}
s.Close();
}
而且我需要在服务器端做什么修改?
感谢
在单个流上发送多条消息,并在多个流上发送1条消息之间存在一些根本区别;特别是您的“过程数据在这里”需要能够正确区分不同的消息。你可能已经有这个覆盖了...我只是提到它是彻底的 – 2011-03-31 07:12:35
@Marc,在这种情况下消息是分开的,因为他为每个消息打开一个新的套接字。非常低效,但它确实分解了邮件;) – 2011-03-31 07:15:15
@Peter - exactly;如果他切换到一个套接字,则会发生变化。根据消息格式的不同,*可能会很好,或者*可能需要调整 - 例如每条消息的长度前缀 – 2011-03-31 07:18:36