LAN을 통해 UDP를 사용하려고합니다. 여기에서 볼 수 있듯이 하나의 PC로 다른 하나의 패키지를 보내지 만, 여전히 목록을 작성하는 동안 패킷을 보낼 수 있습니까? 프로세스가 응답을 멈추는 것을 받기 시작합니다. 이것이 스레드와 관련이 있다는 것을 알고 있지만 약간의 도움이 필요합니다. 감사합니다. 미리 감사드립니다.UDP는 항상 백그라운드에서 LAN을 통해 수신합니다.
UdpClient client = new UdpClient();
public void SendPacket()
{
byte[] packet = Encoding.ASCII.GetBytes(DateTime.Now.ToString("HH:mm:ss:ff"));
client.Send(packet, packet.Length, tbIP.Text, 444);
dgvSend.Rows.Add(DateTime.Now.ToString("HH:mm:ss:ff"));
}
public void ReceivePacket()
{
client = new UdpClient(444);
IPEndPoint server = new IPEndPoint(IPAddress.Any, 0);
byte[] packet = client.Receive(ref server);
dgvReceiv.Rows.Add(Encoding.ASCII.GetString(packet), DateTime.Now.ToString("HH:mm:ss:ff"));
}
안녕하세요, 이전에이 코드를 보았습니다.하지만 보내기 위해 뭔가를 받으려면 기다려야하므로 아직 이해가되지 않습니다. 내 요점은 동시에 듣고 보내는 것입니다. FYI 코드가 UdpState 클래스가 없기 때문에 불완전합니다. –
글쎄, 당신은 정말로 듣지 않습니다. 당신은 방금 받았습니다. 'Receive'를 사용하면 수신하기 전에 보내야합니다. BeginReceive를 사용하면 방금 누군가에게 응답을 보내는 동안 다른 수신을 시작할 수 있습니다. –