이 코드 예제 인 http://msdn.microsoft.com/en-us/library/tst0kwb1.aspx을 사용하여 메시지를주고받을 수있는 콘솔 UDP 서버를 만들었습니다.WinForms의 UDP 클라이언트?
하지만 콘솔 응용 프로그램이 아니기를 바라며 Forms를 사용하고 싶습니다. 내 응용 프로그램에서 메시지 보내기 기능을 성공적으로 구현했지만 청취자를 작동시키는 방법을 모르겠습니다.
여기는 메시지를 수신하기위한 코드입니다. 아무 것도하지 않습니다.
참고 :이 코드를 버튼 클릭 이벤트 코드 바로 아래에 넣습니다.
private void StartListener()
{
bool done = false;
UdpClient listener = new UdpClient(listenPort);
IPEndPoint groupEP = new IPEndPoint(IPAddress.Any, listenPort);
try
{
while (!done)
{
this.lblMessage.Text = "Waiting for broadcast";
byte[] bytes = listener.Receive(ref groupEP);
this.lblRecieve.Text = Encoding.ASCII.GetString(bytes, 0, bytes.Length);
}
}
catch (Exception e)
{
this.lblMessage.Text = e.ToString();
}
finally
{
listener.Close();
}
}
이 코드
분명히 잘못된 것입니다,하지만 난 전에 C#에서 일을 해본 적이없는이 콘솔 샘플 코드는 내가 UDP 서버에 대해 찾을 수있는 유일한 가이드였다.여기는 메시지를 보내는 코드입니다. 완벽하게 작동합니다.
private void btnSend_Click(object sender, EventArgs e)
{
Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
IPAddress broadcast = IPAddress.Parse("192.168.0.105");
byte[] sendbuf = Encoding.ASCII.GetBytes("test");
IPEndPoint ep = new IPEndPoint(broadcast, listenPort);
s.SendTo(sendbuf, ep);
this.lblMessage.Text = "Sent Message";
}
편집 :
내가 당신에게서 가지고 도움을 주셔서 감사합니다, 대신 일을 내 자신의 깨진 코드를 조정, 나는 다른 코드는 내가 원하는 것처럼 작동하도록 조정할 발견했다.
UDP datagram code for server client application in C#
이
내가 빌린 코드이며 제대로 작동하지 않는 정지()을 제외하고, 완벽하게 작동하지만 큰 문제가되지 않습니다 및 구글로 해결하기 어려운해서는 안됩니다.나는 당신이 나에게 준 링크로부터 아직도 많은 것을 배웠다.
답장을 보내 주셔서 감사합니다.이 자습서를 살펴 보겠습니다. – Adam