用于返回本地套接字地址的函数是()。
第1题:
以下哪个套接字调用可以获得套接字连接的目的方的地址()。
A、Getsockname
B、Getdestname
C、Getpeername
D、gethostname
第2题:
若定义了函数double*function(),则函数function的返回值为()。
A.实数型
B.实数的地址
C.指向函数的指针
D.函数的地址
第3题:
A.listen
B.connect
C.recvfrom
D.send
第4题:
请阅读以下说明和Socfort程序,将应填(n)处的字句写在对应栏内。
网络应用的基本模型是客户机/服务器模型,这是一个不对称的编程模型,通信的双方扮演不同的角色:客户机和服务器。
以下是一个简单的客户机程序(服务器程序略),其工作过程非常简单:客户机与服务器建立连接后,接收服务器向客户机返回的一条消息。
程序中用到了两种结构hostent与sockaddr_in:
hostent类型的结构定义如下:
struct hostent { char * h_name; //主机的正式名称
char * * h-aliases; //别名列表
int h_addrtype; //主机地址类型:AF-XXX
int H_length; //主机地址长度:4 B(32 b)
char * * h_addr_list; //主机IP地址列表}
define h???-addr h-addr-liSt[0]
sockaddr_in类型的结构定义:sockaddr_in是通用套接字结构sockaddr在TCP/IP协议下的结构重定义,为TCP/IP套接字地址结构。
Struct sockaddrin{
short int sin-family;//地址类型AF_XXX,其中AF_INET为TCP/P专用
unsigned short int sin-port; //端口号
struct in_addr Sin_addr; //Internet地址
//端口号以及Internet地址使用的是网络字节顺序,需要通过函数htons转换
}
struct iN_addr{
_u32 s-addr; //类型为unsignel-long
}
程序中使用到了多个函数:
struct hostent * gethostbyname(const char * hostname);
函数gethostbyname查询与指定的域名地址对应的IP地址,返回一个hostent结构的指针,如果不成功则返回NULL。
Int?_socket(int domain,im-type,int protoco1);
函数socket创建一个套接字描述符,如果失败返回-1。domain为地址类型,type为套接字类型,本题中为SOCK_STREAM;protocol指定协议,本题中为0。
int connect(int sockfd,struct sockaddr * servaddr,int addrlen);
函数connect与服务器建立一个连接,成功返回0,失败返回-1。servaddr为远程服务器的套接字地址,包括服务器的IP地址和端口号;addrlen为地址的长度。
int read(intfd,char * bur,int len);
int write(intfd,char * buf,int len);
函数read和write从套接字读和写数据,成功返回数据量大小,否则返回-1。buf指定数据缓冲区,len指定接收或发送的数据量大小。
[Socket程序]
//程序中引用的头丈件略
definePORT 3490
//定,义端口号为3490
int main(int argc,char * argv[])
{int tsockfd,nbytes;//套接字描述符、读入缓冲区的字节数
char buf[1024];//缓冲区
struct hostent * he;//主机信息类型
struct (1) srvadd;//Internet套接字结构
if(argc!=2)
{perror(“调用参数为零,请输入服务器的主机名!\n”);exit(1);}
if((2))//如果通过主机名没有获得对应的主机信息就提示用户
{perror(“无法通过主机名获得主机信息!\n”);exit(1);}
if((3))//在无法创建套接字时,提示用户
{perror(“无法创建套按字!\n”);exit(1);}
bzero(&srvaddr, (4));//置空srvaddr
sraddr,SIR_family=AF_INET;
srvaddr,sln_port:htons(PO日T);srvaddr.sin_addr: (5);
//设置套接字结构的各项信息,其中的地址来自域名查询后的hp变量
if(connect(sockfd,(n),sizeof(struct sockaddr))==-1)
{perror("连接失败!\n");exit(1);}
//连接服务器,如果失败则提示用户
if((nbytes=read(sockfd,buf,MAXDATASIZE))=-1)
{perror("读失败!\n");exit(1);}
//从套接字中读出数据
buf[nbytes]='\0';
printf("读到的内容:%s",buf);
CIose(SOCkfd);
//打印数据并关闭套接字
第5题:
支持双向的数据流,但并不保证是可靠、有序、无重复的是()。
第6题:
C语言中将函数值返回主调函数所使用的关键字是()
第7题:
下列选项中,可以用于获取函数返回值的关键字是()。
第8题:
ServerSocket的getInetAddress()的返回值类型是()
第9题:
已有定义int(*f)();指针f可以()
第10题:
Socket通常也称为套接字 ,用于描述()和()
第11题:
socket
getsockname
getpeername
getsocket
第12题:
第13题:
A.流式套接字
B.数据报套接字
C.UDP套接字
D.TCP套接字
第14题:
已有定义int(*p)();,指针p可以______。
A.代表函数的返回值
B.指向函数的入口地址
C.代表函数的类型
D.代表函数返回值的类型
第15题:
A、Socket
B、Object
C、DatagramSocket
D、void
第16题:
当使用关键字______作为函数返回类型时,该函数不返回任何值。
第17题:
在一次网络的有连接通信中有以下几个参数需要被设置:()、本地端口、本地IP、对方IP地址和对方端口,在这个全关联的套接字上可以双向的交换数据。
第18题:
函数返回值所实用的关键字是Return
第19题:
在TCP协议中套接字是由端口和IP地址组成。
第20题:
java程序中,使用TCP套接字编写服务端程序的套接字类是()
第21题:
在UNIX系统中,用于给一个套接字赋名的函数是()
第22题:
returns
close
return
back
第23题:
continue
break
exit
return