Linux网络编程

源代码在线查看: linux网络编程--5. 用户数据报发送.html

软件大小: 54 K
上传用户: QQ
关键词: Linux 网络编程
下载地址: 免注册下载 普通下载 VIP

相关代码

																								[ 永远的UNIX > Linux网络编程--5. 用户数据报发送 ]												body,th,input,select,textarea,select,checkbox{font:12pt 宋体}				A:link { text-decoration:underline; color:#E6A306}				A:visited { text-decoration:underline; color:#E6A306}				A:hover { text-decoration:underline; color:#FFFF00}				body {  font-family: "宋体", "serif"; font-size: 12pt}				td {  font-family: "宋体", "serif"; font-size: 12pt}				p  { font-size: 9pt; line-height: 150%}				-->																																				  				   												 首页 > 编程技术 > 网络编程 >   正文												   												 Linux网络编程--5. 用户数据报发送												 http://linuxc.51.net 作者:hoyt (2001-05-08 11:21:31)																				
    我们前面已经学习网络程序的一个很大的部分,由这个部分的知识,我们实际上可以写出大部分的基于TCP协议的网络程序了.现在在Linux下的大部分程序都是用我们上面所学的知识来写的.我们可以去找一些源程序来参考一下.这一章,我们简单的学习一下基于UDP协议的网络程序. 

5.1 两个常用的函数 

   int recvfrom(int sockfd,void *buf,int len,unsigned int flags,struct sockaddr * from int *fromlen)
   int sendto(int sockfd,const void *msg,int len,unsigned int flags,struct sockaddr *to int tolen)

sockfd,buf,len的意义和read,write一样,分别表示套接字描述符,发送或接收的缓冲区及大小.recvfrom负责从sockfd接收数据,如果from不是NULL,那么在from里面存储了信息来源的情况,如果对信息的来源不感兴趣,可以将from和fromlen设置为NULL.sendto负责向to发送信息.此时在to里面存储了收信息方的详细资料. 


5.2 一个实例 

/*           服务端程序  server.c           */

#include 
#include 
#include 
#include 
#include 
#define SERVER_PORT     8888
#define MAX_MSG_SIZE    1024

void udps_respon(int sockfd)
{
        struct sockaddr_in addr;
        int     addrlen,n;
        char    msg[MAX_MSG_SIZE];
        
        while(1)
        {       /* 从网络上度,写到网络上面去   */
                n=recvfrom(sockfd,msg,MAX_MSG_SIZE,0,
                        (struct sockaddr*)&addr,&addrlen);
                msg[n]=0;
                /* 显示服务端已经收到了信息  */
                fprintf(stdout,"I have received %s",msg);
                sendto(sockfd,msg,n,0,(struct sockaddr*)&addr,addrlen);
        }
}

int main(void)
{
        int sockfd;
        struct sockaddr_in      addr;
        
        sockfd=socket(AF_INET,SOCK_DGRAM,0);
        if(sockfd																																相关文章  关键词  																Linux网络编程--4. 完整的读写函数 (2001-05-08 11:20:52)Linux网络编程--3. 服务器和客户机的信息函数 (2001-05-08 11:20:14)Linux网络编程--2. 初等网络函数介绍(TCP) (2001-05-08 11:19:34)Linux网络编程--1. Linux网络知识介绍 (2001-05-08 11:16:55)												 																								   												    ©   樊强制作 欢迎分享 2001 				  																															

相关资源