我有问题。为什么我的客户端无法从服务器接收数据?服务器正在从客户端接收数据而没有问题。是不是因为我的客户端没有连接到我的服务器客户端。有人知道吗?对不起我的英语,我来自捷克共和国。:)
这是我的 UDP 客户端:
UdpClient client;
public IPAddress serverIP = IPAddress.Parse("127.0.0.1");
public Form1()
{
InitializeComponent();
client = new UdpClient();
}
public void SendData()
{
client.Connect(serverIP, 3000);
byte[] data = Encoding.ASCII.GetBytes("Hi, I'm new client.");
client.Send(data, data.Length);
DoListening();
}
public void DoListening()
{
IPEndPoint adress = new IPEndPoint(serverIP, 3000);
byte[] receivedbytes = client.Receive(ref adress);
string recieved = Encoding.ASCII.GetString(receivedbytes);
MessageBox.Show("Recieved: " + recieved);
}
private void button1_Click(object sender, EventArgs e)
{
SendData();
}
这是我的 UDP 服务器:
public Form1()
{
InitializeComponent();
Thread listening = new Thread(new ThreadStart(DoListening));
listening.Start();
}
public void ClientThread(Object adress)
{
IPEndPoint ip = adress as IPEndPoint;
UdpClient client = new UdpClient();
client.Connect(ip);
byte[] data = Encoding.ASCII.GetBytes("No nazdar");
client.Send(data, data.Length);
MessageBox.Show("Sending data..");
}
public void DoListening()
{
while (true)
{
UdpClient client = null;
client = new UdpClient(3000);
IPEndPoint host = new IPEndPoint(IPAddress.Any, 0);
MessageBox.Show("Listening");
byte[] receivedbytes = client.Receive(ref host);
string recieved = Encoding.ASCII.GetString(receivedbytes);
MessageBox.Show("Client " + host.Address.ToString() + " conected. Message: " + recieved);
new Thread(new ParameterizedThreadStart(ClientThread)).Start(host);
Console.WriteLine("Doslo k vyjimce z duvodu : {0}", ex.SocketErrorCode);
}
}