未分类题
下面是一个面向连接的SOCKET实例,填入(n)处。
【说明】
代码实例中的服务器通过socket连接向客户端发送字符串'Hello,you are connected!'。只要在服务器上运行该服务器软件,在客户端运行客户软件,客户端就会收到该字符串。
客户端程序代码如下:
include<stdio.h>
include<stdlib.h>
include<errno.h>
include<string.h>
include<netdb.h>
include<sys/types.h>
include<netinet/in.h>
include<sys/socket.h>
define SERVPORT 3333
define MAXDATASIZE 100 /*每次最大数据传输量*/
main(int argc, char*argv[]){
int sockfd, recvbytes;
char buf[MAXDATASIZE];
stmct hostent*host;
struct sockaddr_in serv_addr;
if (1) {
fprintf(stderr, 'Please enter the server's hostname!/n');
exit(1);
}
if<(host=gethostbyname(argv[1]))=NULL) {
herror('gethostbyname出错!');
exit(1);
}
if ((sockfd = socket(AF_INET, (2), 0))=-1) {
perror('socket创建出错!');
exit(1);
}
serv_addr.sin_family=AF_INET;
serv_addr.sin_port=htons(SERVPORT);
Serv_addr.sin_addr=*((structin_addr*)host→h_addr);
bzero(&(serv_addr.sin_zero), 8);
if(connect (3), (struct sockaddr *)&serv_addr, /
sizeof(struct sockaddr))=-1) {
perror('connect出错!');
exit(1);
}
if((recvbytes=recv (4), buf, MAXDATASIZE, 0))=-1) {
perror('recv出错!');
exit(1);
}
buf[recvbytes]='/0';
pfintf('Received: %s', buf);
close(sockfd);
}
A.h>
B.h>
C.h>
D.h>
E.h>
F.h>
G.h>
H.h>
I.sin_family=AF_INET;
J.sin_port=htons(SERVPORT);
K.sin_addr=*((structin_addr*)host→h_addr);
L.sin_zero),
【参考答案】
(1)argc<2 //判断参数个数是否为2;即判断是否输入主机名。(2)SOCK_STREAM //说明是面向连接的通......
(↓↓↓ 点击下方‘点击查看答案’看完整答案 ↓↓↓)