2011-03-17 31 views
1

想要创建一个Java停止等待UDP服务器和客户端,但我遇到了一些问题。我做了一个简单的UDP客户端和服务器,没有停止等待的部分,但我现在想学习如何改变它。我如何使用java套接字发送ACK和实现超时?使用UDP停止和等待套接字编程

有人请张贴一些例子让我在我的实施中使用?

+1

请张贴您现在拥有的重要部分,以及您遇到的问题。另外,“stop-and-wait”是什么意思? – Mat 2011-03-17 18:18:45

+0

停止并等待意味着客户端向服务器发送消息,然后在等待来自服务器的确认时超时。如果在等待确认的过程中所有的时间到期,数据包将被重发,否则发送下一个数据包 – 2011-03-17 18:25:34

+0

停止和等待协议是一次发送1个数据包并等待客户端在发送之前发回ack的过程下一个包。 – MBU 2011-03-17 18:26:09

回答

0

如果你在UDP中实现这个功能,发送和接收确认由你决定。这似乎是你想要的这个停止和等待协议。在伪代码方面,你想是这样的:

int Send(msg) 
{ 
    char rcvBuf[]; 
    sentBytes = sock.send(msg); 
    sock.rcv(rcvBuf); 
    return sentBytes; 
} 

int Recv(rcvBuf) 
{ 
    String ackMsg = "ACK"; 
    length = sock.rcv(rcvBuf); 
    sock.send(ackMsg); 
    return length; 
} 

之后每次发送,你等待确认消息进来,每次接收时间,发送的确认。