网络编程Word文档格式.docx
- 文档编号:15386276
- 上传时间:2022-10-29
- 格式:DOCX
- 页数:32
- 大小:19.98KB
网络编程Word文档格式.docx
《网络编程Word文档格式.docx》由会员分享,可在线阅读,更多相关《网络编程Word文档格式.docx(32页珍藏版)》请在冰豆网上搜索。
charbuf[MAXDATASIZE];
charrvbuf[MAXDATASIZE];
structhostent*he;
structsockaddr_inserver;
if(argc!
=2)
{
printf("
Usage:
%s<
IPaddress>
\n"
argv[0]);
exit(-1);
}
if((he=gethostbyname(argv[1]))==NULL){
perror("
gethostbynameerror."
);
exit
(1);
}
if((fd=socket(AF_INET,SOCK_STREAM,0))==-1){
Createsocketfailed."
bzero(&
server,sizeof(server));
server.sin_family=AF_INET;
server.sin_port=htons(PORT);
memcpy(&
server.sin_addr,he->
h_addr,sizeof(structin_addr));
if(connect(fd,(structsockaddr*)&
server,sizeof(structsockaddr))==-1)
connectfailed."
structsockaddr_inlocaladdr;
socklen_tlen=sizeof(localaddr);
getsockname(fd,(structsockaddr*)&
localaddr,&
len);
printf("
LocalipandLocalportis:
%s:
%d\n"
inet_ntoa(localaddr.sin_addr),localaddr.sin_port);
structsockaddr_inpeeraddr;
socklen_tlenp=sizeof(peeraddr);
getpeername(fd,(structsockaddr*)&
peeraddr,&
lenp);
PeeripandPeerportis:
inet_ntoa(peeraddr.sin_addr),peeraddr.sin_port);
close(fd);
}
服务器端程序如下:
sys/types.h>
arpa/inet.h>
#defineBACKLOG1
voidprocess_cli(intconnectfd,structsockaddr_inclient);
main(void)
intlistenfd,connectfd;
structsockaddr_inserver,client;
intsin_size;
if((listenfd=socket(AF_INET,SOCK_STREAM,0))==-1)
perror("
Createsocketfailed."
exit(-1);
intopt=SO_REUSEADDR;
setsockopt(listenfd,SOL_SOCKET,SO_REUSEADDR,&
opt,sizeof(opt));
server.sin_port=htons(PORT);
server.sin_addr.s_addr=htonl(INADDR_ANY);
if(bind(listenfd,(structsockaddr*)&
server,sizeof(structsockaddr))==
-1){
Binderror."
if(listen(listenfd,BACKLOG)==-1){
listenerror."
sin_size=sizeof(structsockaddr_in);
while
(1){
if((connectfd=accept(listenfd,(structsockaddr*)&
client,&
sin_size))==-1)
accepterror."
close(connectfd);
close(listenfd);
实验二服务器与单客户的连接处理
#defineMAXDATASIZE1000
intmain(intargc,char*argv[])
intfd,numbytes;
structhostent*he;
inti=1;
if(argc!
=2)
%s<
\n"
argv[0]);
if((he=gethostbyname(argv[1]))==NULL){
gethostbynameerror."
if((fd=socket(AF_INET,SOCK_STREAM,0))==-1){
Createsocketfailed"
exit
(1);
server.sin_family=AF_INET;
server.sin_addr=*((structin_addr*)he->
h_addr);
if(connect(fd,(structsockaddr*)&
server,sizeof(structsockaddr))==-1)
if((numbytes=recv(fd,buf,MAXDATASIZE,0))==-1)
recverror."
buf[numbytes]='
\0'
;
ServerMessage:
%s\n"
buf);
while(i){
Inputyourmessage(maxsizeis100):
"
scanf("
%s"
buf);
if(strlen(buf)<
1)i=0;
if((numbytes=send(fd,buf,strlen(buf),0))==-1)
Senderror."
readerror.\n"
}
Theconverseofyourmessageis:
\n"
);
#defineBACKLOG2
#defineMAXCHARSIZE1000
voidprocess_client(intconnectfd,structsockaddr_inclient);
intmain(void)
intlistenfd,connectfd;
structsockaddr_inserver,client;
pid_tpid;
if((listenfd=socket(AF_INET,SOCK_STREAM,0))==-1)
server.sin_addr.s_addr=htonl(INADDR_ANY);
if(bind(listenfd,(structsockaddr*)&
if(listen(listenfd,BACKLOG)==-1)
sin_size=sizeof(structsockaddr_in);
while
(1){
if((connectfd=accept(listenfd,(structsockaddr*)&
sin_size))==-1){
Accepterror.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网络 编程
![提示](https://static.bdocx.com/images/bang_tan.gif)