本帖最后由 VisualEleven 于 2014-03-17 10:30:03 编辑

解决方案 »

  1.   

    socket初始化的时候指定的协议从TCP改成UDP
      

  2.   

    师兄坑你TCP和UDP各有所长,传输文件显然不是UDP的长处TCP和UDP的编程方法和数据处理的方式也有不同,不会只改几个单词就改好的UDP传文件也不是不可以,百度一下就有答案
      

  3.   

    就是师兄这个程序是完整地,之前是用网线来连接接受图片,现在要改成用无线来连接,但是因为连接有问题,所以老师让改成UDP协议,就是不知道怎么改,因为UDP和TCP差别不就是一个有连接一个无连接,我不能再师兄的程序上将链接的部分删去么,其余的部分不变
      

  4.   

    那我其他的部分呢?我知道那个协议的类型要改成SOCK_DGRAM的 ,关于连接那一部分要删去,其余的部分是不是可以不用改
      

  5.   

    就是师兄这个程序是完整地,之前是用网线来连接接受图片,现在要改成用无线来连接,但是因为连接有问题,所以老师让改成UDP协议,就是不知道怎么改,因为UDP和TCP差别不就是一个有连接一个无连接,我不能再师兄的程序上将链接的部分删去么,其余的部分不变两点:UDP不是一种无连接的TCP,只是去掉连接肯定不行。需要做很多工作无线网络就不能用TCP?这个理由不充分。之所以不能用TCP,肯定有其他原因。其他原因不一定仅导致TCP不能用,还可能导致UDP不能用,因此,可能做了也白做。我个人推测,其他原因很可能就是连接方向问题。你加了无线,很有可能是无线路由器,做了NAT之后,连接方向就受限了。
      

  6.   

    创建socket的地方用SOCK_DGRAM 
    UDP可以使用connect函数。如果使用connect以后,下面的发送和接收就可以用send/recv,而不是非得用sendto/recvfrom了,因为connect的时候就指定了IP和PORT等相关信息了。
    For a connectionless socket (for example, type SOCK_DGRAM), the operation performed by connect is merely to establish a default destination address that can be used on subsequent send/WSASend and recv/WSARecv calls.