红联Linux门户
Linux帮助

C语言网络编程,一个关于socket的初学者问题

发布时间:2011-03-07 22:51:49来源:红联作者:hsnowirp
大家好,初学网络编程,阅读了一些源代码,现在有一个疑问:
UDP点对点通讯下,服务器端和客户端都只需要声明一个struct sockaddr_in addr吗?是否sendto和recvfrom都使用的同样一个socket?

我看有一个服务器端的源程序是:
struct sockaddr_in ser_addr;
struct sockaddr_in cli_addr;
设置地址和端口信息是设置的ser_addr,bind也是用到ser_addr,可是接受数据recvfrom用的是cli_addr

怎样设置才是正确到?
文章评论

共有 2 条评论

  1. stephenyong 于 2011-03-19 11:23:48发表:

    这个问题可以看看关于socket编程的资料!我也才开始学习!似乎这个结构体放的是一些什么端口啊!ip的内容!菜鸟,请指教!

  2. deepwhite 于 2011-03-08 08:59:28发表:

    你的看到服务器代码就是正确的,否则也不能发布出来做服务器了。

    Server端需要两个 sockaddr, A & B , 一个用于 Bind (A), 另外一个做为接收到的请求的 Client 的地址(B),接收到 Client 请
    求后, Client 地址存放到 B, 后续的 Datagram 也将会发送到 B 上。

    建议了解一下基本的 TCP 和 UDP 知识再看代码