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);
}
分享到:
相关推荐
【标题】"s3c2410-linux-udp源码"涉及的知识点主要集中在嵌入式系统、Linux内核编程以及网络通信协议UDP(User Datagram Protocol)的应用上。S3C2410是一款由Samsung公司生产的基于ARM920T内核的微处理器,常用于...
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编程之...
本文将深入探讨Linux下的Socket网络编程,主要使用C语言进行讲解。 一、Socket基本概念 Socket在网络编程中扮演着核心角色,它是进程间的通信端点,提供了在互联网上不同计算机间进程通信的接口。在Linux中,Socket...
### Linux操作系统下的C语言网络编程入门 随着互联网的迅速发展,网络编程已成为现代软件开发中的一个核心技能。在Linux环境下进行网络编程不仅能够让你更好地理解网络通信的基本原理,还能够帮助你在众多开发者中...
### 黑马_Linux网络编程-网络基础-socket编程-高并发服务器 #### 知识点概述 本篇文章旨在深入解读“黑马_Linux网络编程-网络基础-socket编程-高并发服务器”相关的核心概念和技术要点,包括网络基础知识、常用...
【标题】:“基于UDP协议的Client/Server Linux网络编程” 在计算机网络中,UDP(User Datagram Protocol,用户数据报协议)是一种无连接的传输层协议,它提供了比TCP(Transmission Control Protocol,传输控制...
【Linux网络编程-网络基础-socket编程-高并发服务器】 在深入探讨Linux下的网络编程之前,我们首先要理解网络通信的基础概念——协议。协议是数据传输和解释的规则,它确保了不同设备之间的通信能顺利进行。例如,...
在IT领域,网络编程是不可或缺的一部分,特别是在C语言环境下,理解和掌握C/S(Client/Server)架构、UDP(User Datagram Protocol)并发服务器以及TCP(Transmission Control Protocol)并发连接至关重要。...
总的来说,"C/S多人聊天室"项目融合了网络编程、多线程技术和两种主要的网络传输协议,展示了如何在实际应用中灵活运用这些技术。通过这个项目,开发者不仅能深入理解TCP与UDP的特性,还能掌握客户端与服务器之间的...
网络基础协议的概念: 在计算机网络中,协议是一系列规则和约定的集合,用于控制网络中不同设备间的通信方式。...通过深入理解这些知识点,可以更好地掌握Linux网络编程,以及如何构建高并发服务器。
本文将详细讲解如何在Linux环境下,通过简单的C语言Socket API实现一个基础的客户端/服务器模型,即C/S架构。 首先,我们需要理解Socket的基本概念。Socket是一种进程间通信机制,允许运行在同一台机器或不同机器上...
在IT领域,网络编程是至关重要的,特别是在C语言这样的底层编程语言中,它涉及到了操作系统、硬件和软件的交互。以下是一些与标题和描述相关的网络编程知识点: 1. **TCP三次握手与四次挥手**: - 三次握手:...
在Linux系统中,进行网络编程时通常会使用Socket API,它是跨平台的网络通信接口。通过创建Socket,应用程序可以建立到其他系统的连接,实现数据的收发。Socket编程涉及到网络套接字的创建、绑定、监听、连接和数据...
在Linux系统中,UDP(User Datagram Protocol)是一...综上所述,通过使用适当的命令行工具或编写C/C++程序,我们可以在Linux环境下实现UDP广播。理解这些基本概念和技巧对于进行网络编程和调试网络服务是至关重要的。
根据提供的文件信息,本文将详细解析“Linux下的UDP广播系统编程示例”这一主题,包括对UDP广播在Linux环境下的实现原理、代码分析以及应用场景等内容。 ### 一、UDP广播概述 UDP(User Datagram Protocol)是一种...
这个UDP局域网聊天室项目为初学者提供了很好的实践机会,可以帮助他们理解网络编程基础,特别是UDP协议的使用。同时,由于项目使用了C语言,也能够锻炼程序设计和内存管理的能力。通过阅读和分析源代码,学习者可以...
Linux网络编程是构建高效、高并发服务器的基础,其中的核心概念之一是socket编程。...无论是深入理解TCP/IP协议族的工作原理,还是灵活运用C/S和B/S模式,都是成为合格的Linux网络编程大师的关键。
### 传智Linux网络编程知识点概述 #### 一、网络编程基本概念 1. **协议的概念**:在计算机网络中,协议是指两台或多台计算机之间进行数据交换时所遵循的一套规则。从应用角度来看,协议可以理解为数据传输和解释的...