现在我写了一个客户端
步骤:
1.向服务器192.168.1.100:7001发送一条GET_KONE_CODE信息
2.服务器收到后用7001端口向客户端之前发GET_KONE_CODE的端口答复一条TLClient
3.服务器马上再用随机的一个端口向客户端的7000端口发送一串8位数字如12345678
事实上只有这个8位数字有用,我现在收不到这个8位数字,只能收到前面的TLClient
private Socket client;
private int code; //验证码
private byte[] data;
IPEndPoint ipep;
/// <summary>
/// 使用IP初始化
/// </summary>
/// <param name="host">服务器IP</param>
public FaSong(string host)
{
client = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
data = new byte[13];
ipep = new IPEndPoint(IPAddress.Parse(host), 7001);
data = Encoding.Default.GetBytes("GET_KONE_CODE");
client.SendTo(data, ipep); //发送数据
//接收数据
IPEndPoint sender = new IPEndPoint(IPAddress.Parse(host), 7000);
EndPoint Remote = (EndPoint)sender;
data = new byte[16];
int temp = client.ReceiveFrom(data, ref Remote);
code = Convert.ToInt32(Encoding.Default.GetString(data));
问题1:
IPEndPoint sender = new IPEndPoint(IPAddress.any, 0);
EndPoint Remote = (EndPoint)sender;
data = new byte[16];
int temp = client.ReceiveFrom(data, ref Remote);
这里的sender中IPAddress.any, 0怎么理解?是理解为接收从服务器任意端口发来的信息,还是理解为服务器发到客户端任意端口的信息,说通俗一点就是我想问这个地方应该写服务器的发送端口(服务发送端口随机,我也不知道是哪个),还是写7000端口(服务器会通过随机端口发到客户端的7000端口)?
问题2:
我有尝试修改IPEndPoint sender = new IPEndPoint(IPAddress.any, 0);
比如改成IPEndPoint(IPAddress.Parse(host), 7000);
IPEndPoint(IPAddress.Parse(host), 0);
这些都不对,依然无法接受到想要的数字
求解各位大神
步骤:
1.向服务器192.168.1.100:7001发送一条GET_KONE_CODE信息
2.服务器收到后用7001端口向客户端之前发GET_KONE_CODE的端口答复一条TLClient
3.服务器马上再用随机的一个端口向客户端的7000端口发送一串8位数字如12345678
事实上只有这个8位数字有用,我现在收不到这个8位数字,只能收到前面的TLClient

private Socket client;
private int code; //验证码
private byte[] data;
IPEndPoint ipep;
/// <summary>
/// 使用IP初始化
/// </summary>
/// <param name="host">服务器IP</param>
public FaSong(string host)
{
client = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
data = new byte[13];
ipep = new IPEndPoint(IPAddress.Parse(host), 7001);
data = Encoding.Default.GetBytes("GET_KONE_CODE");
client.SendTo(data, ipep); //发送数据
//接收数据
IPEndPoint sender = new IPEndPoint(IPAddress.Parse(host), 7000);
EndPoint Remote = (EndPoint)sender;
data = new byte[16];
int temp = client.ReceiveFrom(data, ref Remote);
code = Convert.ToInt32(Encoding.Default.GetString(data));
问题1:
IPEndPoint sender = new IPEndPoint(IPAddress.any, 0);
EndPoint Remote = (EndPoint)sender;
data = new byte[16];
int temp = client.ReceiveFrom(data, ref Remote);
这里的sender中IPAddress.any, 0怎么理解?是理解为接收从服务器任意端口发来的信息,还是理解为服务器发到客户端任意端口的信息,说通俗一点就是我想问这个地方应该写服务器的发送端口(服务发送端口随机,我也不知道是哪个),还是写7000端口(服务器会通过随机端口发到客户端的7000端口)?
问题2:
我有尝试修改IPEndPoint sender = new IPEndPoint(IPAddress.any, 0);
比如改成IPEndPoint(IPAddress.Parse(host), 7000);
IPEndPoint(IPAddress.Parse(host), 0);
这些都不对,依然无法接受到想要的数字
求解各位大神
