//功能:客服端发送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);
}
}

最新文章

  1. 【完全开源】Django多人博客系统——支持MarkDown和tinyMce
  2. Opencv step by step - 视频变换
  3. 【下载】支持中文的 jspSmartUpload jar 包
  4. fuser命令使用心得
  5. Linux多线程实践(10) --使用 C++11 编写 Linux 多线程程序
  6. linux下创建且挂载光盘镜像
  7. 【转】手把手教你读取Android版微信和手Q的聊天记录(仅作技术研究学习)
  8. 关于noip2017的感想
  9. 洛谷 P3871 [TJOI2010]中位数 解题报告
  10. Hadoop源码阅读-HDFS-day2
  11. [Jmeter]Xpath获取元素某个属性的值,以及获取最后一个元素某个属性的值
  12. 【原创】python内存泄漏以及python flask框架莫名coredump
  13. TCP 建立的3次握手, 和关闭的4次握手
  14. Touch table
  15. echarts分段(一段一种颜色)显示
  16. JAVA常见算法题(二十)
  17. angularjs与server交互
  18. location.replace()和location.href=进行跳转的区别
  19. webstorm使用总结
  20. css滚动条样式修改

热门文章

  1. 方程式EQGRP_Lost_in_Translation工具之fb.py
  2. Backbone学习总结
  3. BZOJ 3160 FFT+马拉车
  4. 【Asp.net入门08】第一个Asp.net应用程序-创建窗体并设置其样式
  5. tp5.1 入口文件即报错
  6. Xpath语法与lxml库的用法
  7. Cloudstack 虚拟机实例(四)
  8. Broker流量均衡 prefer reassign
  9. Eclipse中遇到main方法不能运行 的情况
  10. IntelliJ IDEA编码格式设置