1 .server
deepfuture@deepfuture-laptop:~/private/mytest$ ./testupds
server wait....
server read :deepfuture.iteye.com
server send :hello
server wait....
^C
deepfuture@deepfuture-laptop:~/private/mytest$
2.client
deepfuture@deepfuture-laptop:~/private/mytest$ ./testupdc
client send....
client send :deepfuture.iteye.com
client read :hello
deepfuture@deepfuture-laptop:~/private/mytest$
3.source
1)server
#include <stdio.h>
#include <errno.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
//deepfuture.iteye.com
int main(void){
int fd;
int addresslen;
struct sockaddr_in address;//地址信息结构
int rc;
//建立socket
fd=socket(AF_INET,SOCK_DGRAM,0);//fd为socket
if (fd==-1){//错误,类型从errno获得
perror("error");//perror先输出参数,后跟":"加空格,然后是errno值对应的错误信息(不是错误代码),最后是一个换行符。
}
//bind 到socket fd
address.sin_family=AF_INET;//IPV4协议,AF_INET6是IPV6
address.sin_addr.s_addr=htonl(INADDR_ANY);//l表示32位,htonl能保证在不同CPU的相同字节序
address.sin_port=htons(1253);//端口号,s表示16位
addresslen=sizeof(address);
bind(fd,(struct sockaddr *)&address,addresslen);//bind
while(1){
struct sockaddr_in clientaddress;
int address_len;
char mybuf[100];
char *buf="hello\n";
int n;
printf("server wait....\n");
fflush(stdout);
address_len=sizeof(clientaddress);
n=recvfrom(fd,mybuf,100,0,(struct sockaddr *)&clientaddress,&address_len);//读数据
printf("server read :%s\n",mybuf);
sendto(fd,buf,strlen(buf)+1,0,(struct sockaddr *)&clientaddress,address_len);//写数据
printf("server send :%s\n",buf);
}
}
2)client
#include <stdio.h>
#include <errno.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
//deepfuture.iteye.com
int main(void){
int fd;
int addresslen;
struct sockaddr_in address;//地址信息结构
int rc;
char mybuf[100];
char *buf="deepfuture.iteye.com\n";
int n;
//建立socket
fd=socket(AF_INET,SOCK_DGRAM,0);//fd为socket
if (fd==-1){//错误,类型从errno获得
perror("error");//perror先输出参数,后跟":"加空格,然后是errno值对应的错误信息(不是错误代码),最后是一个换行符。
}
//bind 到socket fd
address.sin_family=AF_INET;//IPV4协议,AF_INET6是IPV6
address.sin_addr.s_addr=htonl(INADDR_ANY);//l表示32位,htonl能保证在不同CPU的相同字节序
address.sin_port=htons(1253);//端口号,s表示16位
addresslen=sizeof(address);
printf("client send....\n");
fflush(stdout);
sendto(fd,buf,strlen(buf)+1,0,(struct sockaddr *)&address,addresslen);//写数据
printf("client send :%s\n",buf);
n=recvfrom(fd,mybuf,100,0,NULL,NULL);//读数据
printf("client read :%s\n",mybuf);
}
分享到:
相关推荐
5、Linux网络编程05——C/S与B/S架构的区别 6、Linux网络编程06——UDP协议编程 7、Linux网络编程07——广播 8、Linux网络编程08——多播 9、Linux网络编程09——TCP编程之客户端 10、Linux网络编程10——TCP编程之...
通过UDP协议在CLIENT和SERVER间传文件,可支持多个CLIENT向一个SERVER请求数据,以及SERVER重启后的断点续传
aa.c chain hello.c pthread_attr.s pthread_create1.c pthread_rwlock aa.h cond pthread_attr pthread_cond pthread_create.c pthread_rwlock.c bping cond.c pthread_attr1.c pthread_cond.c pthread_mutex while...
本代码实现模拟扣扣聊天室。 开发环境 : Linux,vim,gcc,gdb等 项目简述 : 使用socket网络编程及多线程程序设计开发多人聊天室,实现多客户端登录,室内群聊及一对一私聊。
自学Linux网络编程关于socket的编写,包括 server.c 和 client.c 的编写;很详细的介绍了网络套接字socket的C/S模型TCP协议的服务器端和客户端的程序函数以及编写过程;重点介绍多路I/O转接服务器的实现,包括select...
本程序为基于 C/S 的网络聊天室系统,使用 Linux 网络编程作为服务器,使用 QT 编程作为客户端。 客户端通过输入 IP 地址、端口号、Email、聊天名称、聊天组号连接到服务器, 用户通过客户端发送消息,同时接收来自...
linux下的udp多进程编程,C/S 的聊天室,实现了聊天室和私聊的功能. 字符‘#’为获得在线人名,‘#to <name> <data> ’为私聊的格式
命令 netstat是用来显示网络的连接,路由表和接口统计等网络的信息.netstat有许多的 选项 我们常用的选项是 -an 用来显示详细的网络状态.至于其它的选项我们可以使用帮 助手册获得详细的情况. telnet telnet是一...
192.168.100.0/24/ s b in/ i p c h a i n s-A i n p u t-j D E N Y-i e c h1- d 192.168.100.0/24/sbin/ipchains-Aoutput-jDENY-iech1-s 192.168.100.0/...
3.1.2 Linux下C语言编程环境概述 3.2 常用编辑器 3.2.1 进入vi 3.2.2 初探emacs 3.3 gcc编译器 3.3.1 gcc编译流程解析 3.3.2 gcc编译选项分析 3.4 gdb调试器 3.4.1 gdb使用流程 3.4.2 gdb基本命令 3.5 make工程管理...
不过目前大多数较新的Linux发行版本(包括红旗 Linux、中软Linux、Mandrake Linux等)都可以自动挂装文件系统,但Red Hat Linux除外。 umount 1.作用 umount命令的作用是卸载一个文件系统,它的使用权限是超级...
3.1.2 Linux下C语言编程环境概述 62 3.2 进入Vi 63 3.2.1 Vi的模式 63 3.2.2 Vi的基本流程 63 3.2.3 Vi的各模式功能键 65 3.3 初探Emacs 66 3.3.1 Emacs的基本操作 67 3.3.2 Emacs的编译概述...
目录 历史 前言 I. C语言入门 1. 程序的基本概念 1. 程序和编程语言 2. 自然语言和形式语言 ...3. 在Linux C编程中使用Unicode和UTF-8 B. GNU Free Documentation License Version 1.3, 3 November 2008 参考书目 索引
第四部分为Linux编程;第五部分为附录。本书内容翔实、涉及领域广泛,并且提供了详细的例子和大量的参考资料(包括书籍、电子文档和Internet站点),是一本学习、使用和管理Linux不可多得的好书。 目 录 译者序 前言...
网络套接字(socket)编程,深入理解TCP、UDP协议;用select网络框架,写一个简单的C/S程序,可以正常运行。此代码是我用来记录学习网络套接字的过程,代码是在linux操作系统的vim界面下基于C++编写的,如果在VS或者...
本课程设计主要实现一个Linux下的局域网聊天工具的设计。该设计主要分为两部分,客户端部分和主机部分。运行服务器端程序可以和...完成了一个可以运行在Linux平台下C/S架构的即时聊天系统,实现聊天的各种基本功能。
群组通信功能 组播编程需要UDP,有两个类支持组播网络编程Socket和UdpClient.一台计算机要加 入某一个组,然后接收发往这个组的信息。Socket类要调用SetSocketOption函数加入和 离开某一个组。UdpClient类有直接的...
1)Linux C编程工具:GCC和GDB 2)文件I/O操作 技术 3)文件属性及目录操作 4)终端控制与信号处理 5)进程控制 6)进程间通信 7)流式套接字编程 8)线程管理 9)数据库工具sqlite3 ●避免使用的特定...
该实例可进行局域网的聊天、一对多、多对一、和多对多的传送和续传,理论上这是我本人的实现目的,而且目前经测试已基本实现了上述功能,而且网速一般有几M/S。另外有只打开一个应用程序、CRichEdit的使用、最小到...