新手入门
- 积分
- 17
- 金钱
- 17
- 注册时间
- 2016-3-15
- 在线时间
- 2 小时
|
1金钱
在做个项目遇到困难,通过电脑发送和采集由sim900模块的数据,现在可以正常接收gprs模块发送过来的数据,发送数据发现可以发送成功,但grps就是接收不到数据,用网络调试助手可以正常发送接收数据,自写的程序在局域网测试发送都是可以正常发送的,通过设置路由器端口映射也可以在广域网发送接收的,这就奇怪了,为什么人家的网路调试助手可以正常发送,而我的程序就不可以(已经证明在局域网、广域网路由映射都是成功的),难道gprs有特殊要求?
下面附我发送的程序的代码:(协议用的是Udp,gprs先发送个信息,电脑接收端接收,找到ip和端口,发送就按照这个ip和端口发送,此过程在网路调试助手已经调试通过)
private void button1_Click(object sender, EventArgs e)
{
if (txtSendMssg.Text == "")
{
MessageBox.Show("请先输入要发送的内容!", "提示");
return;
}
// 匿名发送
udpcSend = new UdpClient(0); // 自动分配本地IPv4地址
byte[] sendbytes = Encoding.ASCII.GetBytes(txtSendMssg.Text.Trim());
IPEndPoint remoteIpep = new IPEndPoint(
IPAddress.Parse(txtIP.Text.Trim()), int.Parse(txtPort.Text.Trim())); // 发送到的IP地址和端口号
udpcSend.Send(sendbytes, sendbytes.Length, remoteIpep);
}
|
最佳答案
查看完整内容[请看2#楼]
这个是UDP协议的,谢谢各位帮忙,问题已经找到原来涉及到了udp打洞相关知识,服务器监听的端口,发送的时候也必须用此端口才能发出,如果用随机端口在局域网中是通的,在广域网会被路由器屏蔽掉。这么简单弄了好久,哎.......
|