- 浏览: 2000793 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (651)
- ACE (35)
- BAT (9)
- C/C++ (116)
- fast-cgi (14)
- COM (27)
- python (59)
- CGI (4)
- C# (2)
- VC (84)
- DataBase (29)
- Linux (96)
- P2P (6)
- PHP (15)
- Web (6)
- Memcached (7)
- IME输入法 (11)
- 设计模式 (2)
- 搜索引擎 (1)
- 个人情感 (4)
- 笔试/面试 (3)
- 一亩三分地 (33)
- 历史 (2)
- 地理 (1)
- 人物 (3)
- 经济 (0)
- 不仅仅是笑哦 (43)
- 小故事大道理 (2)
- http://www.bjdsmyysjk120.com/ (0)
- http://www.bjdsmyy120.com/ (0)
- 它山之石可以攻玉 (15)
- 大学生你关注些什么 (28)
- 数据恢复 (1)
最新评论
-
luokaichuang:
这个规范里还是没有让我明白当浏览器上传文件时,STDIN的消息 ...
FastCGI规范 -
effort_fan:
好文章!学习了,谢谢分享!
com技术简介 -
vcell:
有错误os.walk(strPath)返回的已经是全部的文件和 ...
通过python获取目录的大小 -
feifeigd:
feifeigd 写道注意:文章中的CPP示例第二行 #inc ...
ATL入门:利用ATL编写简单的COM组件 -
feifeigd:
注意:文章中的CPP示例第二行 #include " ...
ATL入门:利用ATL编写简单的COM组件
UDP客户端:
1、创建一个socket,用函数socket();
2、设置socket属性,用函数setsockopt();* 可选
3、绑定IP地址、端口等信息到socket上,用函数bind();
4、循环接收数据,用函数recvfrom();
5、关闭网络连接;
UDP编程的客户端一般步骤是:
1、创建一个socket,用函数socket();
2、设置socket属性,用函数setsockopt();* 可选
3、绑定IP地址、端口等信息到socket上,用函数bind();* 可选
4、设置对方的IP地址和端口等属性;
5、发送数据,用函数sendto();
6、关闭网络连接;
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <ctype.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <errno.h>
#include <stdlib.h>
//#include <signal.h>
#define MAXLINE 80
int port = 8000;
int main(void)
{
struct sockaddr_in sin;
struct sockaddr_in rin;
int sock_fd;
int address_size;
char buf[MAXLINE];
char str[INET_ADDRSTRLEN];
int i;
int len;
int n;
bzero(&sin, sizeof(sin));
sin.sin_family = AF_INET;
sin.sin_addr.s_addr = INADDR_ANY;
sin.sin_port = htons(port);
sock_fd = socket(AF_INET, SOCK_DGRAM, 0);
if (-1 == sock_fd)
{
perror("call to socket");
exit(1);
}
n = bind(sock_fd, (struct sockaddr *)&sin, sizeof(sin));
if (-1 == n)
{
perror("call to bind");
exit(1);
}
while(1)
{
address_size = sizeof(rin);
n = recvfrom(sock_fd, buf, MAXLINE, 0, (struct sockaddr *)&rin, &address_size);
if (-1 == n)
{
perror("call to recvfrom.\n");
exit(1);
}
printf("you ip is %s at port %d:%s\n",
inet_ntop(AF_INET, &rin.sin_addr,str,sizeof(str)),
ntohs(rin.sin_port),buf);
len = strlen(buf);
for (i = 0; i < len; i++)
{
buf[i] = toupper(buf[i]);
}
n = sendto(sock_fd, buf, len+1, 0, (struct sockaddr *)&rin, address_size);
if (-1 == n)
{
perror("call to sendto\n");
exit(1);
}
}
}
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <errno.h>
#include <stdlib.h>
#define MAXLINE 80
int port = 8000;
int main(int argc, char *argv[])
{
struct sockaddr_in pin;
struct sockaddr_in rin;
int sock_fd;
char buf[MAXLINE];
char str[MAXLINE];
char sip[INET_ADDRSTRLEN];
int n;
int address_size;
bzero(&pin, sizeof(pin));
pin.sin_family = AF_INET;
inet_pton(AF_INET, "127.0.0.1", &pin.sin_addr);
pin.sin_port = htons(port);
sock_fd = socket(AF_INET, SOCK_DGRAM, 0);
if (-1 == sock_fd)
{
perror("call to socket");
exit(1);
}
while(NULL != fgets(str,MAXLINE, stdin))
{
sendto(sock_fd, str, strlen(str) + 1, 0, (struct sockaddr *)&pin, sizeof(pin));
if (-1 == n)
{
perror("call to sendto.\n");
exit(1);
}
address_size = sizeof(rin);
n = recvfrom(sock_fd, buf, MAXLINE, 0, (struct sockaddr *)&rin, &address_size);
if (-1 == n)
{
perror("call to recvfrom.\n");
exit(1);
}
else
{
printf("Response from %s port %d:%s\n",
inet_ntop(AF_INET, &rin.sin_addr, sip, sizeof(sip)),
ntohs(rin.sin_port),buf);
}
}
close(sock_fd);
if (-1 == n)
{
perror("call to close.\n");
exit(1);
}
return 0;
}
发表评论
-
Berkeley DB 使用经验总结
2012-08-27 14:41 3028作者:陈磊 NoSQL是现在互联网Web2.0时代备受 ... -
嵌入式数据库系统Berkeley DB
2012-08-27 14:37 1477前言 UNIX/LINUX平台下的数据库种类非常多 ... -
C语言中标准输入流、标准输出流、标准错误输出流
2011-06-13 14:32 9199C语言中标准输入流、标准输出流、标准错误输出流 在 ... -
Rsync 实现原理
2011-05-12 20:06 8253Rsync 实现原理 前言 关于rsync的原始文档 ... -
c++简单的虚函数测试
2011-04-27 14:25 969#include <iostream> u ... -
C++文件行查找
2011-04-26 14:10 1353#include <iostream> # ... -
c++偏特化简单示例
2011-04-13 11:17 2109c++偏特化 // temp1.c ... -
GDB调试精粹及使用实例
2011-03-16 14:06 1083GDB调试精粹及使用实例 一:列文件清单 1. ... -
简单的ini文件解析
2011-02-12 16:36 1573int GetKeyVal(const string s ... -
scanf族函数高级用法
2011-01-25 16:00 2485如何解释 fscanf(fd,&quo ... -
使用scons替代makefile(1)
2011-01-25 11:58 3641早在多年前我刚开始接触linux下的C程序时,经常被makef ... -
使用scons替代makefile(2)
2011-01-25 11:57 3530本篇文章接着上一篇进一步介绍scons的使用方法,主要介绍静态 ... -
使用scons替代makefile(3)
2011-01-25 11:55 4776在上两篇文章中已经简单介绍了用scons编译库文件,可执行程序 ... -
C 支持动态添加测试数据的测试代码
2011-01-13 17:22 1079/下面的定义为了支持可扩增。 //当需要增加一个新的测试用列 ... -
Linux下Makefile的automake生成
2010-12-28 16:55 1049******************helloworld.c* ... -
SCons笔记(详细版)
2010-12-23 16:11 103771. 基本使用 SConstruct文件就功能而言相当于Ma ... -
scons 学习
2010-12-23 11:14 2113scons 学习 作者:Sam(甄峰) sam_code@h ... -
scons随笔
2010-12-22 20:20 4641scons随笔 Scons是新一代的软件构件工具,或者说ma ... -
Scons在linux下的安装和使用
2010-12-21 11:59 3198因为正在用的一个开源软件需要的Developm ... -
排列组合的实现
2010-12-20 12:41 1012简单算法: 从前往后(或者从后往前)每次交换一个位置。当存在 ...
相关推荐
Linux 下 UDP 网络编程的基本服务器模型步骤、循环服务器模型步骤和并发服务器模型步骤,包括代码和步骤注释
其包含客户端和服务器端代码,实现了linux下的socket编程,是UDP方面很好的例子
linux下的网卡测速程序,使用udp编写,同时也是一个很好的linux网络编程范例,cudp为客户端程序,而sudp为服务器程序
linux下网络编程,实现UDP方式客户端与服务器通信,使用了两个线程操作
内涵三个文件,客户端程序,服务器程序,和公共函数头文件,本人是在Ubuntu14.0.4环境下写的,欢迎下载
内容包含Linux系统概述、Linux编程环境、Linux文件系统简介、Linux下的进程和线程、TCP/IP协议族、应用层网络服务程序、TCP编程、主机信息获取、数据IO复用、UDP编程、高级套接字、套接字选项、原始套接字、服务器...
linux下udp客户端和服务器的程序,可用于无差错传输文件和对网络编程的学习
实验验证linux网络编程中的UDP编程,其中UDP服务器从电脑1接收数据,然后转发到电脑2实现了简单的udp收发服务器的设计,其中lisntener为服务器程序,talker为电脑1程序,disp为电脑2程序
11、Linux网络编程11——tcp、udp迭代服务器 12、Linux网络编程12——tcp三次握手、四次挥手 13、Linux网络编程13——connect()、listen()和accept()三者之间的关系 14、Linux网络编程14——I/O复用之select详解 15...
Linux下基于UDP的socket编程,适用多客户端之间,服务器与客户端之间的通信。在阿里云服务器上已通过测试。notepad++可打开
主要介绍了Linux UDP socket 设置为的非阻塞模式与阻塞模式区别的相关资料,需要的朋友可以参考下
Linux下基于UDP的socket编程,适用多客户端之间,服务器与客户端之间的通信。客户端和服务端代码分开了。notepad++可打开
linux环境下的UDP网络编程,主要实现服务器端对客户端发送过来的数据进行广播的功能。适合入门者。
linux下的udp 发包函数源码,可以指定发送的IP与端口号,适合socket 编程初学者学习
内容包含linux系统概述、linux编程环境、linux文件系统简介、linux下的进程和线程、tcp/ip协议族、应用层网络服务程序、tcp编程、主机信息获取、数据io复用、udp编程、高级套接字、套接字选项、原始套接字、服务器...
Linux网络编程一步一步学-UDP编程介绍.pdf Linux网络编程一步一步学-UDP方式点对点通讯.pdf Linux网络编程一步一步学-UDP方式广播通讯.pdf Linux网络编程一步一步学-绑定IP和端口.pdf Linux网络编程一步一步学-编写...
包括服务器端和接收端 包含注释 经过测试可正常编译运行 #include #include #include #include #include #include #include #include #define MYPORT 3490 //设定端口为3490 #define BACKLOG 10 main() { int ...
udp实现聊天室功能 采用linux c编程 socket 服务器可以给所有在线的人发送群广播。 上线,下线提醒功能。 程序代码和运行文件, 还有使用说明,本程序在linux系统中完美运行。
Linux 网络编程基础UDP服务器与客户端代码实现源码