重要提示: 请勿将账号共享给其他人使用,违者账号将被封禁!
查看《购买须知》>>>
找答案首页 > 全部分类 > 求职面试
搜题
网友您好, 请在下方输入框内输入要搜索的题目:
搜题
题目内容 (请给出正确答案)
[主观题]

使用Socket编写网络Server端程序,绑定端口用bind函数,服务器调用()函数接受连接

暂无答案
更多“使用Socket编写网络Server端程序,绑定端口用bind函数,服务器调用()函数接受连接”相关的问题

第1题

关于Socket通讯正确的是

A,服务器端需要ServerSocket,需要绑定端口号

B,服务器端需要ServerSocket,需要绑定端口号和IP地址

C,客户端需要Socket,需要绑定端口号

D,客户端需要ServerSocket,需要绑定端口号

点击查看答案

第2题

请阅读以下说明和Socket程序,填入(n)处。

网络应用的基本模型是客户机/服务器模型,这是一个不对称的编程模型,通信的双方扮演不同的角色:客户机和服务器。本题中的程序,客户机接收用户在键盘上输入的文字内容,服务器将客户机发送来的文字内容直接返回给客户机。

此程序中,用户自定义函数有:

int read_all( int fd, void*buf, int nbyte );

函数read all从参数fd指定的套接字描述符中读取nbytes字节数据至缓冲区buf中,成功返回实际读的字节数(可能小于nbyte),失败返回-1。

int write_all( int fd, void*buf, int nbyte );

函数write_all向参数fd指定的套接字描述符中写入缓冲区buf前nbyte字节的数据,成功返回实际写的字节数(始终等于nbyte),失败返回-1。

write_requ函数为客户机发送请求的函数;read_requ函数为服务器获取请求的函数

服务器主程序部分:

define SERVER_PORT 8080 //服务器监听端口号为8080

define BACKLOG 5 //连接请求队列长度

int main( int argc, char*argv[]) {

int listenfd, connfd //监听套接字、连接套接字描述符

struct sockaddr_in servaddr; //服务器监听地址

listenfd=(1); //创建用于监听的套接字

if (listenfd<0) {

fPrintf( stderr,"创建套接字错误!");

exit(1);

} //套接字创建失败时打印错误信息

bzero(&servaddr.sizeof(servadd));//将地址结构置空

servaddr.sin_family=AF_INET;//设置地址结构遵循TCP/IP协议

servaddr.sin_addrs_addr=htonl.(2);//设置监听的IP地址为任意合法地址,并将该地址转换为网络字节顺序

servaddr.sin_port=(3);//设置监听的端口,并转化为网络字节顺序

if ( bind(4)<0 ) {

fprintf( stderr,"绑定套接字与地址!");

exit(1);

} //将监听地址与用于监听的套接字绑定,绑定失败时打印错误信息

if ( listen( listedfd, BACKLOG)<0) {

fprintf( stderr,"转换套接字为监听套接字!");

exit(1);

} //将用于监听的套接字由普通套接字转化为监听套接字

for(;){

connfd=(5);

//从监听套接字的连接队列中接收已经完成的连接,并创建新的连接套接字

if(connfd<0){

fprintf(stderr,"接收连接失败!");

exit(1);

} //接收失败打印错误信息

serv_respon(connfd); //运行服务器的处理函数

(6);//关闭连接套接字 }

close(listenfd);//关闭监听套接字 }

服务器通信部分:

include<stdio.h>

……//引用头文件部分略>

void serv_respon( int sockfd) {

int nbytes; char buf[1024];

for(;;) {

nbytes=read_requ(sockfd, buf, 1024);

//读出客户机发出的请求,并分析其中的协议结构,获知请求的内容部分的长度,并将内容复制到缓冲区buf中,

if ( nbytes=0) return;//如客户机结束发送就退出

else if ( bytes<0 ) {

fprintf( siderr,"读错误情息:%s\n", sterror( errno ));

return;

}//读请求错误打印错误信息

if ( write_all ( sockfd, buf, nbytes)<0)

//将请求中的内容部分反向发送回客户机

fprintf( siderr,"写错误信息:%s\n", strerror( errno ) );

}

}

int read_requ( int sockfd, char*buf int size ) {

char inbuf[256];

int n; int i;

i=read_line( sockfd, inbuf, 256 );

//从套接字接收缓冲区中读出一行数据,该数据为客户请求的首部

if(1<O)return(1);

else if ( i=0 ) return(0);

if ( strncmp( inbuf,"",6 )=0)

sscanf( (7),"%d", &n );//从缓冲区buf中读出长度信息

else{

sprintf( buf," ",14 );

return(14);

}//取出首部Length域中的数值,该数值为内容部分的长度

return( read_all( sockfd, buf, n ) );//从接收缓冲区中读出请求的内容部分

}

int get_char(int fd, char*ch) {

static int ffset=0;

static int size=0;

static char buff[1024];

//声明静态变量,在get_char多次被调用期间,该变量的内存不释放

for ( ;size<=0 ||(8);) {

size=read(fd,buf,1024);//一次从套接字缓冲区中读出一个数据块

if ( size<0 ) {

if ( errno=EINTR ) {

size=0;

confine;

//EINTR表示本次读操作没有成功,但可以继续使用该套接字读出数i

}else

return(-1);

}

ffset=0;//读出数据后,将偏址置为0

}

*ch=buf[(9)];//将当前的字符取出,并将偏址移向下一字符

return(1);

}

int read_line(int fd, char*buf, int maxlen) {

int i,n;

char ch;

for ( i=0; i<maxlen;) {

n = get_char( fd, &ch );//取出一个字符

if ( n==1 ){

buff[i++]=ch;//将字符加入字符串中

if ( (10) break;

}else if ( n< ) return(-1);

else break;

}

buf[i]='\0';

return(i);

}

//函数read_line的作用

点击查看答案

第3题

阅读以下说明、Java源程序和运行测试部分,将应填入(n)处的解答写在对应栏中。

1. HTTP 协议

HTTP请 求消息示例

GET/index, htmIHTTP/1.1

Accept: image/gif, image/jpeg, */*

Accept-Language: zh-ch

Accept-encoding: gzip, deflate

User-Agent: Mozilla/4.0 (compatible; MSIE6.0; Windows NT5.1)

Host: IocaIhost: 8080

Connection: Keep-Alive

HTTP/1.1 200 OK

Servert: Microsoft-IIS/4.0

Date: Mon, 3 Jan 1998 13:13:33 GMT

Content-Type: text/html

Last-Modified: Mon, 11 Jan 1998 13:23:42 GMT

Contelit-Length: 112

< html >

2.相关类及主要成员函数

ServerSocket类:

服务器端套接字,它监听固定端口,以接收来自客户端的连接请求,一旦建立连接就返回一个Socket类型的对象。类中的主要成员函数见表1。

基于连接的套接字。类中的主要成员函数见表2。

[Java源程序;一个简单的web服务器]

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */

/*WebScrvc. java */

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */

packageobjclass;

importjaVa. net. *;

importjaVa. io. *;

public class WebServer{

//web服务器侦听的端口号

public static final int PORT=8080;

//WEB-ROOT变量存放web服务器工作目录,该目录存放HTML、GIF图片等静态文件资源

public static final String WEB-ROOT=

Systern. getProperty("user.dir")+File. separator+"webmot";

//SHUTDOWN_COMMAND变量保存关闭服务器的命令

private static final string SHUTDOWN_COMMAND="/shutdown";

//是否收到关闭服务器命令的标志

private boolean Shutdown=false;

public static void main(Sting[]args){

WebServerserver; newWebserver( );

Server.await( );

}

public void await( ){

ServerSocke serverSocke=null;

try{

//创建侦听端口号为PORT的ServerSocket类型的对象

ServerSocket=new(1);

System. out. println("WebServerStarted!");

!

catch(IOException e){

e.printStackTrace( );

System.exit (1);

}

//循环等待客户端连接

While(!Shutdown){

Socket socket=null;

InputStream input=null;

OutputStream output=null;

try{

//创建来自客户端的连接套接宇

Socket=(2);

//创建输入流

input=socket. (3);

//创建输出流

Output=socket. (4);

//创建request对象

Request request=new Request(input);

//解析客户端HTTP请求

request, parse( );

//创建Response 对象

Response response=new (5);

//将 request 对象传递给 response 对象

response. setRequest(request);

//给客户端发送所请求的静态资源

response. (6);

//关闭连接套接字

(7);

//判断当前HTTP 请求中的URI是否是关闭服务器命令

shutdown-request. getUri( ). equals(SHUTDOWN_COMMAND);

Catch (Exception e) {

e. (8);

continue;

}

}

}

}

/ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /

/ * Request. java * /

/ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /

package objclass;

import java.io.InputStream;

import java.io.IOEexception;

public Class Request{

private InputStream input;

private String uri;

点击查看答案

第4题

阅读以下技术说明、Java源程序和运行测试部分,根据要求回答问题1和问题2。

【说明】

1.HTTP

◆ HTTP请求消息示例

GET/index,htmlHTTP/1.1

Accept:image/gif,image/jpeg,*/*

Accept-Language:zh-ch

Accept-encoding:gzip,deflate

User-Agent:Mozilla/4.0(compatible: MSIE6.0;Windows 2003)

Host:localhost:8080

Connection:Keep-Alive

◆ HTTP响应消息示例

HTTP/1.1 200 OK

Servert:Microsoft-IIS/6.0

Date:Mon,3 Jan 2008 13:13:33 GMT

Content-Type:text/html

Last-Modified:Mon,11 Jan 2008 13:23:42 GMT

Contelit-Length:112

<html>

...

</html>

2.相关类及主要成员函数

◆ ServerSocket类

服务器端套接字,它监听固定端口,以接收来自客户端的连接请求,一旦建立连接就返回一个Socket类型的对象,类中的主要成员函数如表6-16所示。

◆Socket类 基于连接的套接字,类中的主要成员函数如表6-17所示。

【Java源程序:一个简单的Web服务器】

/* WebScrvc.java */

packageobjclass;

import java.net.*;

import java.io.*;

public class WebServer{

public static final int PORT=8080; //Web服务器侦听的端口号

public static final String WEB_ROOT= SyStem.getProperty("user.dir")+

File.separator+"webroot";

//WEB_ROOT变量存放Web服务器工作目录,HTML, GIF图片等静态文件资源

private static final String SHUTDOWN_COMMAND="/shutdown";

//SHUTDOWN_COMM_AND变量保存关闭服务器的命令

private Boolean shutdown=false; //是否收到关闭服务器命令的标志

public static void main(Sting[] args) {

WebServer server=new WebServer();

Server.await ()

}

public void await() {

ServerSocket serverSocket = null;

try {

serverSocket = new (1);

//创建侦听端口号为PORT的ServerSocket类型的对象

System.out.println ("WebServerStarted!");

}

catch(IOException e) {

e.printStackTrace ();

SyStem. exit (1);

}

while(!shutdown) { //循环等待客房端连接

Socket socket = null;

InputStream input = null;

OutputStream utput = null;

try{

Socket =(2); //创建来自客房端的连接套接字

Input = socket.(3); //创建输入流

utput = socket.(4); //创建输出流

Request reque

点击查看答案

第5题

阅读以下说明、Java源程序和运行测试部分

1.HTTP协议。

●HTTP请求消息示例:

GET/index, htmlHTTP/1.1

Accept: image/gif, image/jpeg,* /

Accept-Language: zh-ch

Accept-encoding: gzip, deflate

User-Agent: Mozilla/4.0(compatible; MSIE6.0; Windows NT5.1 )

Host: localhost: 8080

Connection: Keep-Alive

●HTTP响应消息示例:

HTTP/1.1 200 OK

Servert: Microsoft-IIS/4.0

Date:Mon,3 Jan 1998 13:13:33 GMT

Content-Type: text/html

Last-Modified:Mon,11 Jan 1998 13:23:42 GMT

Contelit-Length: 112

<html>

</html>

2.相关类及主要成员函数。

SewerSocket类:

服务器端套接字,它监听固定端口,以接收来自客户端的连接请求,一旦建立连接就返回一个Socket类型的对象。类中的主要成员函数如表1-4所示。

基于连接的套接字。类中的主要成员函数如表1-5所示。

【Java源程序;一个简单的Web服务器】

/**********************************************/

/* WebScrvc.java */

/**********************************************/

packageobjclass;

import java.net. *;

import java.io. *;

public class WebServer{

//Web服务器侦听的端口号

public static final int PORT=8080;

//WEB—ROOT变量存放Web服务器工作目录,该目录存放HTML、GIF图片等静态文件资源

public static final String WEB_ROOT=

System.getProperty("user.dir")+File.separator+"webroot";

//SHUTDOWN_COMMAND变量保存关闭服务器的命令

private static final String SHUTDOWN_COMMAND="/shutdown";

//是否收到关闭服务器命令的标志

private boolean shutdown=false;

public static void main(Sting [] args) {

WebServerserver; newWebServer( );

Server.await( );

}

public void await() {

ServerSocke serversocke=null;

try{

//创建侦听端口号为PORT的ServerSocket类型的对象

ServerSocket=new (1) ;

System.out.println( "WebServerStarted!");

}

catch(IOException e) {

e.printStackTrace( );

System.exit(1);

}

//循环等待客户端连接

while(!shutdown) {

Socket socket=null;

InputStream input=null;

OutputStream utput=null;

try{

//创建来自客户端的连接套接宇

Socket= (2) ;

//创建输入流

input=socket. (3) ;

//创建输出流

utput=socket. (4) ;

//创建request对象

Request request=new Request(input);

//解析客户端HTTP请求

request. (5) ;

//创建Response对象

Response response=new Response(output);

点击查看答案

第6题

你是公司网络管理员。所有的客户端运行WindowsXPProfessional。所有的服务器运行WindowsServer2003。公司在LosAngeles(洛杉矶),SanFrancisco(旧金山),Seattle(西雅图)都有办公室。每个办公室配置成一个独立的IP子网。网络中只用DNS进行名称解析。你要在网络中的实施一次软件升级结构。在LosAngeles办公室中的Server1上你装了WSUS服务。Server1上WSUS用的默认设置。你创建了一个组策略对象(GPO)WSUS。并不打算安装别的WSUS服务器。你要客户端计算机能成功的连接到WSUS服务器。你该如何操作?()

A.在所有的客户机上配置浏览器的默认主页为http://windowsupdate.microsoft.com

B.在WSUSGPO中,将服务器的名称属性指定为服务器完全合格域名(FQDN)

C.在WSUS服务器上,配置IIS管理器,要求HTTP使用SSL(安全套结字)

D.允许WSUS服务器和客户端通过443端口通信

点击查看答案

第7题

连接模式PORT建立数据传输通道是由服务器端发起的,服务器使用()端口连接客户端的某一个大于1024的端口;

A.20

B.21

C.22

D.23

点击查看答案

第8题

● 在地址栏中输入 FTP://XYZ.com 时,应用程序将使用 (61) 端口请求连接服务器。

(61)

A.21

B.23

C.25

D.80

点击查看答案

第9题

浏览网页时浏览器与Web服务器之间需要建立一条TCP连接,该连接中客户端使用的端口是( )。

A.21 B.25 C.80 D.大于1024的高端

点击查看答案

第10题

你是公司网络管理员。网络通过一台Windowsserver2003服务器Router11连接互联网。你发现网络中的部分计算机感染了蠕虫病毒,该病毒不时地外网的不同主机发送信息。这些信息都使用同一个TCP/IP端口。你要检查出是哪些计算机感染了病毒。你需要在Router11上配置一个解决方案,该方案须做到以下两点:检测并识别出该蠕虫病毒发送的信息。立即发送一个通知给管理员去修复被感染的计算机。你该如何操作?()

A.配置一个WMIeventtrigger(WMI事件触发器)

B.配置一个NetworkMonitorcapturefilter(网络监视器捕捉过滤器)

C.配置一个NetworkMonitortrigger(网络监视器触发器)

D.配置一个SystemMonitor(系统监视警报)

点击查看答案
下载上学吧APP
客服
TOP
重置密码
账号:
旧密码:
新密码:
确认密码:
确认修改
购买搜题卡查看答案
购买前请仔细阅读《购买须知》
请选择支付方式
微信支付
支付宝支付
选择优惠券
优惠券
请选择
点击支付即表示你同意并接受《服务协议》《购买须知》
立即支付
搜题卡使用说明

1. 搜题次数扣减规则:

功能 扣减规则
基础费
(查看答案)
加收费
(AI功能)
文字搜题、查看答案 1/每题 0/每次
语音搜题、查看答案 1/每题 2/每次
单题拍照识别、查看答案 1/每题 2/每次
整页拍照识别、查看答案 1/每题 5/每次

备注:网站、APP、小程序均支持文字搜题、查看答案;语音搜题、单题拍照识别、整页拍照识别仅APP、小程序支持。

2. 使用语音搜索、拍照搜索等AI功能需安装APP(或打开微信小程序)。

3. 搜题卡过期将作废,不支持退款,请在有效期内使用完毕。

请使用微信扫码支付(元)
订单号:
遇到问题请联系在线客服
请不要关闭本页面,支付完成后请点击【支付完成】按钮
遇到问题请联系在线客服
恭喜您,购买搜题卡成功 系统为您生成的账号密码如下:
重要提示: 请勿将账号共享给其他人使用,违者账号将被封禁。
发送账号到微信 保存账号查看答案
怕账号密码记不住?建议关注微信公众号绑定微信,开通微信扫码登录功能
警告:系统检测到您的账号存在安全风险

为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!

- 微信扫码关注上学吧 -
警告:系统检测到您的账号存在安全风险
抱歉,您的账号因涉嫌违反上学吧购买须知被冻结。您可在“上学吧”微信公众号中的“官网服务”-“账号解封申请”申请解封,或联系客服
- 微信扫码关注上学吧 -
请用微信扫码测试
选择优惠券
确认选择
谢谢您的反馈

您认为本题答案有误,我们将认真、仔细核查,如果您知道正确答案,欢迎您来纠错

上学吧找答案