首页 > 试题广场 >

关于 Socket 通信编程,以下描述正确的是:( )

[单选题]

关于 Socket 通信编程,以下描述正确的是:( )

  • 客户端通过new ServerSocket()创建TCP连接对象
  • 客户端通过TCP连接对象调用accept()方法创建通信的Socket对象
  • 客户端通过new Socket()方法创建通信的Socket对象
  • 服务器端通过new ServerSocket()创建通信的Socket对象
客户端通过new Socket()方法创建通信的Socket对象
服务器端通过new ServerSocket()创建TCP连接对象  accept接纳客户端请求
 
编辑于 2017-06-04 22:10:16 回复(30)
对于D选项
ServerSocket ss=new ServerSocket(3000);
Socket s=ss.accept();//当有客户端连接时才创建Socket对象,而不是new ServerSocket时创建
发表于 2017-07-07 09:39:56 回复(5)
  • A 错误
    • Client端通过new Socket()创建用于通信的Socket对象。
  • B 错误
    • Client端的Socket对象是直接new出来的。
  • C 正确
  • D 错误
    • Server端通过new ServerSocket()创建ServerSocket对象,ServerSocket对象的accept()方法产生阻塞,阻塞直到捕捉到一个来自Client端的请求。当Server端捕捉到一个来自Client端的请求时,会创建一个Socket对象,使用此Socket对象与Client端进行通信。

认识Socket

Socket,又称套接字,是在不同的进程间进行网络通讯的一种协议、约定或者说是规范。

对于Socket编程,它更多的时候是基于TCP/UDP等协议做的一层封装或者说抽象,是一套系统所提供的用于进行网络通信相关编程的接口。

建立Socket连接的基本流程

可以看到本质上,Socket是对TCP连接(当然也有可能是UDP等其他连接)协议,在编程层面上的简化和抽象。

ServerSocket类

创建一个ServerSocket类,同时在运行该语句的计算机的指定端口处建立一个监听服务,如:

ServerSocket serverSocket =new ServerSocket(600);

这里指定提供监听服务的端口是600,一台计算机可以同时提供多个服务,这些不同的服务之间通过端口号来区别,不同的端口号上提供不同的服务。为了随时监听可能的Client端请求,执行如下的语句:

Socket socket = serverSocket.accept();

该语句调用了ServerSocket对象的accept()方法,这个方法的执行将使Server端的程序处于阻塞状态,程序将一直阻塞直到捕捉到一个来自Client端的请求,并返回一个用于与该Client端通信的Socket对象。此后Server程序只需要向这个Socket对象读写数据,就可以向远端的Client端读写数据。结束监听时,关闭ServerSocket:

serverSocket.close();

ServerSocket一般仅用于设置端口号和监听,真正进行通信的是Server端的Socket与Client端的Socket。

Socket类

当Client端需要从Server端获取信息及其他服务时,应创建一个Socket对象:

Socket socket = new Socket(“IP”,600);
Socket类的构造方法有两个参数,第一个参数是欲连接到的Server端所在计算机的IP地址(请注意,是IP,不是域名),第二个参数是该Server机上提供服务的端口号。
如果需要使用域名表示Server端所在计算机的地址:
// 用此句代替IP地址,url为你的域名
InetAddress.getByName("url");

Socket对象建立成功之后,就可以在Client端和Server端之间建立一个连接,通过这个连接在两个端之间传递数据。利用Socket类的方法getInputStream()和getOutputStream()分别获得用于向Socket读写数据的输入/输出流。

当Server端和Client端的通信结束时,可以调用Socket类的close()方法关闭连接。

引用

Java中ServerSocket与Socket的区别-原文转载未标出处-CSDN

Socket编程入门(基于Java实现)-Lumin-掘金

编辑于 2020-06-23 16:07:30 回复(1)
客户端通过socket()方法创建socket对象 服务端通过serverSocket()方法创建TCP对象,通过accept()方法接受客户端请求
发表于 2017-09-22 20:23:49 回复(1)
客户端通过new Socket()方法创建通信的Socket对象 服务器端通过new ServerSocket()创建TCP连接对象 accept接纳客户端请求
发表于 2017-06-14 10:13:24 回复(0)
服务器端通过new ServerSocket()创建TCP连接对象
接纳客户端请求的函数是accept

发表于 2017-05-18 21:18:35 回复(0)
客户端: new Socket (主机名,端口号);
服务端:new ServerSocket(主机名);
服务端调用accet()之后才创建Socket对象;
发表于 2022-05-18 14:34:29 回复(0)
记住 客户穿袜子(客户穿socks), 也就是客户端 new Sockets
发表于 2022-01-06 13:56:11 回复(1)
连接时才创建,我丢。
发表于 2020-02-20 20:19:31 回复(0)
客户端通过socket()方法创建socket对象,服务端通过serverSocket()方法创建TCP对象,通过accept()方法接受客户端请求。
发表于 2022-03-08 14:17:28 回复(0)
A 错误 Client端通过new Socket()创建用于通信的Socket对象。 B 错误 Client端的Socket对象是直接new出来的。 C 正确 D 错误 Server端通过new ServerSocket()创建ServerSocket对象,ServerSocket对象的accept()方法产生阻塞,阻塞直到捕捉到一个来自Client端的请求。当Server端捕捉到一个来自Client端的请求时,会创建一个Socket对象,使用此Socket对象与Client端进行通信。 认识Socket Socket,又称套接字,是在不同的进程间进行网络通讯的一种协议、约定或者说是规范。 对于Socket编程,它更多的时候是基于TCP/UDP等协议做的一层封装或者说抽象,是一套系统所提供的用于进行网络通信相关编程的接口。 建立Socket连接的基本流程 可以看到本质上,Socket是对TCP连接(当然也有可能是UDP等其他连接)协议,在编程层面上的简化和抽象。 ServerSocket类 创建一个ServerSocket类,同时在运行该语句的计算机的指定端口处建立一个监听服务,如: ServerSocket serverSocket =new ServerSocket(600); 这里指定提供监听服务的端口是600,一台计算机可以同时提供多个服务,这些不同的服务之间通过端口号来区别,不同的端口号上提供不同的服务。为了随时监听可能的Client端请求,执行如下的语句: Socket socket = serverSocket.accept(); 该语句调用了ServerSocket对象的accept()方法,这个方法的执行将使Server端的程序处于阻塞状态,程序将一直阻塞直到捕捉到一个来自Client端的请求,并返回一个用于与该Client端通信的Socket对象。此后Server程序只需要向这个Socket对象读写数据,就可以向远端的Client端读写数据。结束监听时,关闭ServerSocket: serverSocket.close(); ServerSocket一般仅用于设置端口号和监听,真正进行通信的是Server端的Socket与Client端的Socket。 Socket类 当Client端需要从Server端获取信息及其他服务时,应创建一个Socket对象: Socket socket = new Socket(“IP”,600); Socket类的构造方法有两个参数,第一个参数是欲连接到的Server端所在计算机的IP地址(请注意,是IP,不是域名),第二个参数是该Server机上提供服务的端口号。 如果需要使用域名表示Server端所在计算机的地址: // 用此句代替IP地址,url为你的域名 InetAddress.getByName("url"); Socket对象建立成功之后,就可以在Client端和Server端之间建立一个连接,通过这个连接在两个端之间传递数据。利用Socket类的方法getInputStream()和getOutputStream()分别获得用于向Socket读写数据的输入/输出流。 当Server端和Client端的通信结束时,可以调用Socket类的close()方法关闭连接。 引用 Java中ServerSocket与Socket的区别-原文转载未标出处-CSDN Socket编程入门(基于Java实现)-Lumin-掘金
发表于 2021-03-18 08:52:29 回复(0)
总的来说就是 客户端通过new Socket()方法来创建Socket对象,服务器通过new serverSocket来创建TCP对象,通过accept()方法接受客户端的请求,并返回一个对象
发表于 2018-11-10 09:28:25 回复(0)
对于D选项 ServerSocket ss=new ServerSocket(3000); Socket s=ss.accept();//当有客户端连接时才创建Socket对象,而不是new ServerSocket时创建
发表于 2017-08-28 11:09:26 回复(1)
客户端通过new Socket()创建通信的Socket对象
服务端通过new ServerSocket()创建TCP对象, accept接纳客户端请求

发表于 2022-05-06 09:49:55 回复(0)
什么是通信的socket对象,服务端的tcp连接对象不也是socket?
发表于 2021-05-10 08:00:11 回复(0)

对于D

服务器端通过new ServerSocket()创建通信的Socket对象

创建是在accept()中实现的

    public Socket accept() throws IOException {
        if (isClosed())
            throw new SocketException("Socket is closed");
        if (!isBound())
            throw new SocketException("Socket is not bound yet");
        Socket s = new Socket((SocketImpl) null);
        implAccept(s);
        return s;
    }
另外,创建ServerSocket有两种方式,第一种无参构造函数是未绑定的,还需要进一步绑定端口才能accept.
```
public static void main(String[] args) throws Exception{
    ServerSocket serverSocket = new ServerSocket();
    serverSocket.bind(new InetSocketAddress(8081));
    ServerSocket serverSocket1 = new ServerSocket(8081);
    serverSocket.accept();
} 
```
编辑于 2019-07-08 14:13:23 回复(0)
忘记了网络编程,复习
发表于 2018-02-02 14:02:17 回复(0)
服务器端是serversockt,accept方法来处理客户端的连接,
发表于 2017-07-26 22:48:12 回复(0)
客户端连接用:Socket s = new Socket("地址", "端口号")
服务端连接:ServerSocket ss = new ServerSocket("端口号")
发表于 2023-03-16 22:59:25 回复(0)



TCP客户端

1.建立连接套接字,设置Ip和端口监听,socket()

2.建立连接connect     

3.write() 获取网络流对象 --> 发送数据

4.read()获取网络流对象 --> 接收数据

5.关闭套接字

TCP服务器端 :

1.建立端口监听socket()

2.绑定指定端口bind()

3.listen进行端口监听

4.accept()阻塞式 直到有客户端访问

5.read()获取客户端发送数据

6.write()发送返回数据

7.close关闭端口监听


发表于 2023-10-08 09:13:18 回复(0)