gpt4 book ai didi

谁能告诉我如何在sunsolaris系统中运行udp客户端服务器程序?

转载 作者:行者123 更新时间:2023-11-30 20:28:32 25 4
gpt4 key购买 nike

程序没有错误,但我无法执行该程序,它显示段错误谁能告诉我在 linux 和 sun sorlaris 中执行客户端服务器程序的语法吗?

最佳答案

我有一个非常简单的 UDP 客户端-服务器程序,它在我的 Ubuntu 机器上运行良好。这是一个非常小的程序,没有错误检查和预防措施,而且绝对不是这样的编写方式。服务器代码:


#define MAXLINE 255
#define MYPORT 9100
int main()
{
int listenfd,msglen,clientlen;
char buff[MAXLINE];
struct sockaddr_in servaddr,client;
listenfd=socket(AF_INET,SOCK_DGRAM,0);
servaddr.sin_family=AF_INET;
servaddr.sin_addr.s_addr=INADDR_ANY;
servaddr.sin_port=htons(MYPORT);
bind(listenfd,(struct sockaddr *)&servaddr,sizeof(servaddr));
clientlen=sizeof(client);
printf("Server is listening");
while(1)
{
msglen=recvfrom(listenfd,buff,100,0,(struct sockaddr *)&client,&clientlen);
buff[msglen]='\0';
sendto(listenfd,buff,msglen,0,(struct sockaddr*)&client,clientlen);
}
}

客户端代码:


#define MAXLINE 255
#define SERV_PORT 9100
#define SA struct sockaddr
int main()
{
char send[100],recv[100];
int sockfd,len;
struct sockaddr_in servaddr;
sockfd=socket(AF_INET,SOCK_DGRAM,0);
servaddr.sin_family=AF_INET;
servaddr.sin_port=htons(SERV_PORT);
inet_pton(AF_INET,"127.0.0.1",&servaddr.sin_addr);
memset((&servaddr.sin_zero),'\0',8);
while(1)
{
printf("Type your message:");
fgets(send,100,stdin);
sendto(sockfd,send,strlen(send),0,(SA*) &servaddr,sizeof(servaddr));
if((len=recvfrom(sockfd,recv,100,0,(SA*)NULL,NULL))>0)
{
recv[len]='\0';
printf("Server echo:%s\n",recv);
}
}
close(sockfd);
}

包含必要的头文件。系统/类型.h系统/socket.h网络/in.h标准库文件stdio.h

关于谁能告诉我如何在sunsolaris系统中运行udp客户端服务器程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5183160/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com