tcp与udp socket使用上面的区别
2016-02-16 22:55
573 查看
1、接收时,TCP先建立了连接,所以不需要remote address。而UDP就需要指定地址。
#ifdef USE_TCP
ret=recv(dataSock,gFrameHead, 4, 0);
#else
struct sockaddr_in remaddr;
//remote address
int slen=sizeof(remaddr);
memset((char *) &remaddr, 0, sizeof(remaddr));
remaddr.sin_family = AF_INET;
remaddr.sin_port = htons(9000);
remaddr.sin_addr.s_addr = inet_addr(argv[2]);
ret=recvfrom(dataSock, gFrameHead, 4, 0, (struct sockaddr *)&remaddr, &slen);
#endif
2、发送时,TCP也不需要指定地址,而UDP则不同,需要指定地址。
#ifdef USE_TCP
send(Sockfd,buf,len);
#else
sendto(Sockfd,buf,len,remaddr);
//remaddr是接收时recvfrom中赋值的。
#endif
#ifdef USE_TCP
ret=recv(dataSock,gFrameHead, 4, 0);
#else
struct sockaddr_in remaddr;
//remote address
int slen=sizeof(remaddr);
memset((char *) &remaddr, 0, sizeof(remaddr));
remaddr.sin_family = AF_INET;
remaddr.sin_port = htons(9000);
remaddr.sin_addr.s_addr = inet_addr(argv[2]);
ret=recvfrom(dataSock, gFrameHead, 4, 0, (struct sockaddr *)&remaddr, &slen);
#endif
2、发送时,TCP也不需要指定地址,而UDP则不同,需要指定地址。
#ifdef USE_TCP
send(Sockfd,buf,len);
#else
sendto(Sockfd,buf,len,remaddr);
//remaddr是接收时recvfrom中赋值的。
#endif
相关文章推荐
- 关于eclipse查看httpservlet等源代码关联了.jar之后仍然看不到源代码的情况
- iOS开发之网络编程--1、NSURLSession的基本使用
- https://github.com/nswbmw/N-blog/wiki/ 遇到的坑
- HttpClient的请求超时和响应超时
- libcurl库进行http通讯-开篇
- libcurl库进行http通讯-开篇
- HTTP 请求方式: GET和POST的比较
- Android网络连接之HttpURLConnection和HttpClient
- 无法启动GlassFish Server 4.1.1:服务器未运行时,HTTP或HTTPS监听程序端口已被占
- POJ训练计划1459_Power Network(网络流最大流/Dinic)
- iOS开发之网络编程--获取文件的MIMEType
- 在线PDF编辑网站http://www.pdfescape.com
- 在线PDF编辑网站http://www.pdfescape.com
- HTTP Header 详解
- http协议与http代理
- HttpURLConnection对象相关方法操作
- HttpClient对象相关方法的操作
- Android更好的扩展性更强网络请求框架----okhttp
- iOS开发之网络编程--使用NSURLConnection实现文件上传
- 【转载】用平常语言介绍神经网络