1 / 5
文档名称:

网络编程课程设计.doc

格式:doc   大小:37KB   页数:5页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

网络编程课程设计.doc

上传人:mh900965 2018/3/11 文件大小:37 KB

下载得到文件列表

网络编程课程设计.doc

相关文档

文档介绍

文档介绍:并发服务器编程
实验内容
使用 socket相关技术,编写一个简单的并发服务器。
服务端等待客户连接,连接成功以后向客户端发送欢迎信息;接着接收该客户端的名字并显示;然后接收来自客户端的信息,将该字符串反转,并将结果送回客户。要求服务器具有同时处理多个客户的能力。
客户端首先与服务器连接,接收用户输入客户的名字,将改名字发送给服务器;接着接收用户输入的字符串,并发送给服务器;然后接收服务器返回的经处理后的字符串,并显示之。当用户输入Ctrl+C时终止连接并退出。
源代码

#include <>
#include <sys/>
#include <sys/>
#include <>
#include </>
#include <arpa/>
#include <>
#include <>
#include <>
#include <>
#include <>
#define MAXCHARSIZE 100
#define PORT 1234
#define BACKLOG 2
void process_client(int connectfd,struct sockaddr_in client);
int main(void)
{
int listenfd,connectfd;
struct sockaddr_in server,client;
int sin_size;
int opt=SO_REUSEADDR;
pid_t pid;
if((listenfd=socket(,SOCK_STREAM,0))==-1)
{
perror("创建套接字失败");
exit(0);
}
//初始化地址结构
setsockopt(listenfd,SOL_SOCKET,SO_REUSEADDR,&opt,sizeof(opt));
bzero(&server,sizeof(server));
=;
=htons(PORT);
=htonl(INADDR_ANY);
//绑定地址
if(bind(listenfd,(struct sockaddr*)&server,sizeof(struct sockaddr))==-1)
{
perror("绑定失败");
exit(0);
}
if(listen(listenfd,BACKLOG)==-1)
{
perror("监听失败");
exit(-1);
}
sin_size=sizeof(struct sockaddr_in);
while(1)
{
//接收
if((connectfd=accept(listenfd,(struct sockaddr *)&client,&sin_size))==-1)
{
perror("接收数据失败");
exit(-1);
}
if((pid=fo