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

发布于 2024-10-20 07:03:50 字数 77 浏览 8 评论 0原文

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

program has no errors but i am unable to execute the prog it is showing segmentation fault
can anyone tell the syntax for executing the client server program in linux and sun sorlaris also.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

赴月观长安 2024-10-27 07:03:50

我有一个非常简单的 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

I have a very simple UDP client-server program that's working fine on my Ubuntu machine.
It's a very minimal program with no error checking and precautions and it's definitely not the way to write.
Server code:


#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);
}
}

Client code:


#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);
}

Include the necessary header files.
sys/types.h
sys/socket.h
netinet/in.h
stdlib.h
stdio.h

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文