日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

c语音 udp最大长度_c语言udp自定义头文件 网络通信程序

發(fā)布時間:2025/3/20 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语音 udp最大长度_c语言udp自定义头文件 网络通信程序 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

//udp.h

#ifndef _UDP_H

#define _UDP_H

#include

#include

#include

#include

#include

#include

#include

typedef struct SockData

{

struct sockaddr_in sockaddrIn;

int sockFd;

int sockaddrLen;

}SData;

void SetServerSockaddr(int port,struct SockData *sd);//初始化服務(wù)器端

void SetClientSockaddr(char ip[],int port,struct SockData *cd);//初始化客戶端

int RecvMsg(struct SockData *sd,char msg[]);//接受消息 返回接受字節(jié)長度

int SendMsg(struct SockData *cd,char msg[]);//發(fā)送消息返回發(fā)送字節(jié)長度

#endif

//udp.c

#include "udp.h"

void SetServerSockaddr(int port,struct SockData *sd)

{

int len;

int sockfd;

struct sockaddr_in ser;

bzero(&ser, sizeof(ser));

ser.sin_family = AF_INET;

ser.sin_addr.s_addr =htonl(INADDR_ANY);

ser.sin_port = htons(port);

len = sizeof(ser);

sockfd = socket(AF_INET, SOCK_DGRAM, 0);

if(sockfd == -1)

{

perror("error!n");

exit(-1);

}

bind(sockfd, (struct sockaddr *)&ser, sizeof(ser));

sd->sockaddrIn=ser;

sd->sockFd=sockfd;

sd->sockaddrLen=len;

}

void SetClientSockaddr(char ip[],int port,struct SockData *cd)

{

struct sockaddr_in cl;

int sockfd;

int len;

sockfd = socket(AF_INET,SOCK_DGRAM,0);

if(sockfd == -1)

{

perror("error!n");

exit(-1);

}

int broadcast = 1;

int num = 0;

int ret_val = setsockopt(sockfd,SOL_SOCKET,SO_BROADCAST,&broadcast,sizeof(broadcast));

if(ret_val == -1)

{

perror("Failed in setsockfd n");

exit(-1);

}

cl.sin_family = AF_INET;

cl.sin_port = htons(port);

cl.sin_addr.s_addr = inet_addr(ip);

len=sizeof(struct sockaddr_in);

cd->sockaddrIn=cl;

cd->sockFd=sockfd;

cd->sockaddrLen=len;

}

int RecvMsg(struct SockData *sd,char msg[])

{

int len;

len=recvfrom(sd->sockFd,msg,1024,0,(struct sockaddr *)&(sd->sockaddrIn),&(sd->sockaddrLen));

msg[len]='n';

return len;

}

int SendMsg(struct SockData *cd,char msg[])

{

int len;

len= sendto(cd->sockFd,msg,strlen(msg),0,(struct sockaddr *)&(cd->sockaddrIn),cd->sockaddrLen);

return len;

}

//client.c

#include "udp.h"

#include

#include

int main()

{

int len;

char recv_msg[256];

char send_msg[256]="send come server !";

SData cd;

//SetServerSockaddr(8899,&cd);

//SData cd;

SetClientSockaddr("127.0.0.1",8899,&cd);

int count=0;

while(1)

{

count++;

SendMsg(&cd,send_msg);

printf("send message : %sn", send_msg);//inet_ntoa(cl.sin_addr);

bzero(&recv_msg,sizeof(recv_msg));

RecvMsg(&cd,recv_msg);

printf("recv message : %d%sn",count, recv_msg);//inet_ntoa(cl.sin_addr);

}

return 0;

}

//server.c

#include "udp.h"

#include

#include

int main()

{

int len;

char recv_msg[256];

char send_msg[256]="send come server !";

SData cd;

SetServerSockaddr(8899,&cd);

//SData cd;

//SetClientSockaddr("127.0.0.1",8899,&cd);

int count=0;

while(1)

{

count++;

bzero(&recv_msg,sizeof(recv_msg));

RecvMsg(&cd,recv_msg);

printf("recv message : %d%sn",count, recv_msg);//inet_ntoa(cl.sin_addr);

SendMsg(&cd,send_msg);

printf("send message : %sn", send_msg);//inet_ntoa(cl.sin_addr);

}

return 0;

}

分享到:

2012-05-16 12:36

瀏覽 1236

評論

總結(jié)

以上是生活随笔為你收集整理的c语音 udp最大长度_c语言udp自定义头文件 网络通信程序的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。