简单的UDP接受程序
//功能:客服端发送UDP包,服务器接受到并打印出来
//2015.9.13成功
#include <stdio.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <netdb.h>
int port = 8000;
int main()
{
struct sockaddr_in sin,cliaddr;
struct sockaddr_in pin;
int sock_descriptor;
int temp_sock_descriptor;
int address_size;
char buf[16384];
int i, len;
// sock_descriptor = socket(AF_INET, SOCK_STREAM, 0);
sock_descriptor = socket(AF_INET, SOCK_DGRAM, 0);
if (sock_descriptor == -1) {
perror("call to socket");
exit(1);
}
bzero(&sin, sizeof(sin));
sin.sin_family = AF_INET;
sin.sin_addr.s_addr = INADDR_ANY;//自动填入本机IP地址
sin.sin_port = htons(port);
if (bind(sock_descriptor, (struct sockaddr *)&sin, sizeof(sin)) == -1) {
perror("call to bind");
exit(1);
}
/*
if (listen(sock_descriptor, 20) == -1) {
perror("call to listen");
exit(1);
}
*/
printf("Accepting connections ...\n");
int addr_len=sizeof(struct sockaddr_in);
while(1)
{
/* temp_sock_descriptor = accept(sock_descriptor, (struct sockaddr *)&pin,&address_size);
if (temp_sock_descriptor == -1) {
perror("call to accept");
exit(1);
}
if (recv(temp_sock_descriptor, buf, 16384, 0) == -1) {
perror("call to recv");
exit(1);
}*/
recvfrom(sock_descriptor, buf, 16384, 0,(struct sockaddr*)&cliaddr,&addr_len);
sleep(1);
printf("received from client:%s\n", buf);
/* // for this server example, we just convert the
// characters to upper case:
len = strlen(buf);
for (i=0; i<len; i++) buf[i] = toupper(buf[i]);
//toupper将字符c转换为大写英文字母
if (send(temp_sock_descriptor, buf, len, 0) == -1) {
perror("call to send");
exit(1);
}
*/ close(temp_sock_descriptor);
}
}
最新文章
- 【完全开源】Django多人博客系统——支持MarkDown和tinyMce
- Opencv step by step - 视频变换
- 【下载】支持中文的 jspSmartUpload jar 包
- fuser命令使用心得
- Linux多线程实践(10) --使用 C++11 编写 Linux 多线程程序
- linux下创建且挂载光盘镜像
- 【转】手把手教你读取Android版微信和手Q的聊天记录(仅作技术研究学习)
- 关于noip2017的感想
- 洛谷 P3871 [TJOI2010]中位数 解题报告
- Hadoop源码阅读-HDFS-day2
- [Jmeter]Xpath获取元素某个属性的值,以及获取最后一个元素某个属性的值
- 【原创】python内存泄漏以及python flask框架莫名coredump
- TCP 建立的3次握手, 和关闭的4次握手
- Touch table
- echarts分段(一段一种颜色)显示
- JAVA常见算法题(二十)
- angularjs与server交互
- location.replace()和location.href=进行跳转的区别
- webstorm使用总结
- css滚动条样式修改