2013-12-21 48 views
1

我得到了一个使用java.net.DatagramSocket类的Java应用程序,它使用UDP。我需要将它切换到TCP,是否有一个简单的方法来做到这一点,或者我是否需要重写整个应用程序?如果这是一个不好的问题,我很抱歉,但我只是从网络开始。将Java程序从UDP切换到TCP最简单的方法是什么?

+0

UDP和TCP操作上非常不同的原则。大多数情况下,您可以(低效地)通过TCP轻松地封装和传输UDP数据包,尽管您可能希望在较高的级别上进行跟踪连接。不过,我不得不问,为什么你要这样做呢? – doynax

回答

0

是的,你将不得不改变你的代码,数据报套接字不能用于TCP,因为两者是完全不同的。与UDP不同,TCP是可靠的传输协议,因此通常握手是必要的。

对于TCP服务器

ServerSocket welcomeSocket = new ServerSocket(6789) 
    Socket connectionSocket = welcomeSocket.accept(); 
    BufferedReader inFromClient = 
    new BufferedReader(new InputStreamReader(connectionSocket.getInputStream())); 
    DataOutputStream outToClient = new DataOutputStream(connectionSocket.getOutputStream()); 
    clientmsg = inFromClient.readLine(); 
    System.out.println("Received: " + clientmsg); 
相关问题