CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  网络编程

UDP编程的问题!

楼主xhmff9(爱得累哟)2005-02-02 01:34:46 在 VC/MFC / 网络编程 提问

各位大虾小弟是网络编程的新手,有个问题问大家:在用SOCKET进行UDP编程的时候应该是指定一个端口来进行数据的接收对吧,数据的发送一般用sendto函数发送出去就行了,可是现在的软件一般接收和发送都是指定不同的端口来进行工作的,我的问题就是,既然已经绑定了一个端口给接收那么如何绑定另外一个指定的端口给发送呢?我找了很多资料都没解决这个问题,望高手指点,我知道MSDN里面有答案,可是我E文不太行,实在找不到在哪里,如果有高手知道的话请指点指点小弟! 问题点数:20、回复次数:15Top

1 楼bug2k(bug2k)回复于 2005-02-02 09:05:36 得分 5

再绑定了一个端口专司发送。Top

2 楼Sander()回复于 2005-02-02 09:30:43 得分 5

为什么要再用另一个port来发送,接收port就可以用来发送呀。Top

3 楼sharkhuang(走吧走吧!人总会慢慢长大~)回复于 2005-02-02 09:35:11 得分 5

bind和接收发送没关系!只要你创建了socket都可以bindTop

4 楼zj510(周)回复于 2005-02-02 09:48:54 得分 5

最简单的就是创建两个socket了  
  一个负责发送,  
  一个负责接收。  
  这样很清楚的。Top

5 楼ant0702(蚂蚁)回复于 2005-02-02 10:25:44 得分 0

为什么要用两个不同的端口呢Top

6 楼xhmff9(爱得累哟)回复于 2005-02-02 10:32:34 得分 0

to     bug2k(bug2k):  
  我试过再绑定,可是会出错。  
   
  to   Sander(),zj510(周):  
  很多软件都采用接收发送分离的办法,这样可以降低出错的可能性,效率也提高!  
   
  to   sharkhuang(~爱一个人好难~):  
  是创建了socket都可以bind,但如果你bind两次就会出错呀!Top

7 楼bug2k(bug2k)回复于 2005-02-02 11:07:57 得分 0

你是不是用了一个句柄Creat的?Top

8 楼fengge8ylf(秀视工作室,承接P2P项目)回复于 2005-02-02 11:09:31 得分 0

对于发送方来说   不用明确绑定一个端口也可以发送   这时低层会为你绑定的Top

9 楼gdy119(夜风微凉)回复于 2005-02-02 13:22:15 得分 0

udp:  
    server   ----------------------------------clinet  
      socket()   ----------   -----     ------------     socket()  
      bind()   -----------------------   ---------   bind()  
      recvfrom()------------------   -----------   sendto()  
      sendto()-----------------------------   ---recvfrom()Top

10 楼Sander()回复于 2005-02-02 13:47:27 得分 0

TO:xhmff9(爱得累哟)  
  很多软件都采用接收发送分离的办法,这样可以降低出错的可能性,效率也提高!  
  -----------------------  
  能讲讲这个的原理吗Top

11 楼xhmff9(爱得累哟)回复于 2005-02-02 14:16:37 得分 0

to   bug2k(bug2k):  
  我的socket是用WSASocket建立的呀。  
   
  to     fengge8ylf(第一次真正想有个女朋友)   :  
  我知道对于发送方来说可以不用明确指定发送端口,但是我的问题就是我想指定发送端口。  
   
  to   Sander():  
  我们都知道很多软件都是指定发送端口和接收端口的呀,我老师就是叫我搞清楚如果将发送和接收这两件事情分开来做,但是我找了很久都找不找资料。Top

12 楼tangrh(阿唐)回复于 2005-02-02 16:31:35 得分 0

对客户端来讲,不绑照样可以发送(当你后续调用sendto时会自动替你绑定),而且对客户端绑定固定端口则很可能会失败,一般编程都不要绑定,服务端绑定的目的是为了让自己的连接信息公开化。发送和接收都是一个socketTop

13 楼Sander()回复于 2005-02-02 18:23:27 得分 0

我们都知道很多软件都是指定发送端口和接收端口的呀,我老师就是叫我搞清楚如果将发送和接收这两件事情分开来做,但是我找了很久都找不找资料。  
  -------------------------------------------------  
  分开来做,并不需要两个端口,而是要用两个event,或thread,  
  制定发送端口,和接收端口,是针对server/client端,两个分别说的Top

14 楼_xiao(小小)回复于 2005-02-03 00:42:29 得分 0

同意   zj510(周)   ,创建两个socket,收的那个自然要bind()了,发的那个也bind()一次,发的时候就会使用所绑定的端口了  
   
  Top

15 楼liuzq_78(披着羊皮的狼)回复于 2005-02-03 08:58:09 得分 0

gzTop

相关问题

  • udp编程
  • 关于UDP编程
  • UDP编程的问题
  • 请教,关于winsock UDP编程。
  • 求助:C# UDP 编程问题。
  • tcp的socks编程和udp的socks连接编程有什么不同?
  • 在DELPHI中任何实现UDP网络编程?
  • 如何用CAsyncSocket实现UDP编程?我是不是有点笨……
  • 想学通讯编程,先从哪着手?Socket?UDP/?ISAPI?
  • 初学socket编程者的问题:TCP与UDP

关键词

  • 端口
  • socket
  • 软件
  • 资料
  • 接收
  • 发送
  • 绑定
  • 指定
  • 编程
  • 出错

得分解答快速导航

  • 帖主:xhmff9
  • bug2k
  • Sander
  • sharkhuang
  • zj510

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo