用Java程序实现流式socket通信,需要使用哪两个类?它们是

题目

用Java程序实现流式socket通信,需要使用哪两个类?它们是如何定义的?怎样使用?

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

使用UDP协议通信时,需要使用哪个类把要发送的数据打包( )。

A、ServerSocket

B、DatagramSocket

C、DatagramPacket

D、Socket


参考答案:C

第2题:

在java.net包中提供了两个类______和ServerSocket,这两个类分别用来表示双向连接的客户端和服务端。

A.ClientSocket

B.Socket

C.clientsocket

D.socket


正确答案:B

第3题:

如果在Java程序中,需要使用java.util包中的所有类,则应该在程序的开始处加上【 】语句。


正确答案:import java.util.*;
import java.util.*; 解析:Java中用import语句来导入包,但需注意的是Java语言中的java.lang包是由编译器直接自动导入的,因此,编程时使用该包中的类,可省去;import导入。使用其他包中的类,必须用 import导入。

第4题:

Java 的通信编程,编程题(或问答),用JAVA SOCKET编程,读服务器几个字符,再写入本地显示?


答:Server端程序: 
package test; 
import java.net.*; 
import java.io.*; 

public class Server { 
    private ServerSocket ss; 
    private Socket socket; 
    private BufferedReader in; 
    private PrintWriter out; 
    public Server() { 
       try { 
           ss=new ServerSocket(10000); 
           while(true) { 
           socket = ss.accept(); 
           String RemoteIP = socket.getInetAddress().getHostAddress(); 
           String RemotePort = ":"+socket.getLocalPort(); 
           System.out.println("client comein!IP:"+RemoteIP+RemotePort); 
           in = new BufferedReader(new 
           InputStreamReader(socket.getInputStream())); 
           String line = in.readLine(); 
           System.out.println("Cleint send is :" + line); 
out = new PrintWriter(socket.getOutputStream(),true); 
out.println("Your Message Received!"); 
out.close(); 
in.close(); 
socket.close(); 
} 
}catch (IOException e) 
{ 
out.println("wrong"); 
} 
} 
public static void main(String[] args) 
{ 
new Server(); 
} 
}; 
Client端程序: 
package test; 
import java.io.*; 
import java.net.*; 

public class Client 
{ 
Socket socket; 
BufferedReader in; 
PrintWriter out; 
public Client() 
{ 
try 
{ 
System.out.println("Try to Connect to 127.0.0.1:10000"); 
socket = new Socket("127.0.0.1",10000); 
System.out.println("The Server Connected!"); 
System.out.println("Please enter some Character:"); 
BufferedReader line = new BufferedReader(new 

InputStreamReader(System.in)); 
out = new PrintWriter(socket.getOutputStream(),true); 
out.println(line.readLine()); 
in = new BufferedReader(new InputStreamReader(socket.getInputStream())); 
System.out.println(in.readLine()); 
out.close(); 
in.close(); 
socket.close(); 
}catch(IOException e) 
{ 
out.println("Wrong"); 
} 
} 
public static void main(String[] args) 
{ 
new Client(); 
} 
};

第5题:

在java.lang.object中,存在两个可以完成线程同步,并且实现线程通信的方法,它们是( )。

A.start()和stop()

B.wait()和notify()

C.suspend()和resume()

D.setDaemon()和isDaemon()


正确答案:B
解析:在java.lang.object中,实现线程通信有两个方法:wait ()和notify (),它们可以完成线程间同步。其中wait ()方法使线程等待,并且暂时释放其占有的对象锁。notify ()方法通知因调用wait ()方法而等待的线程重新占有该对象锁。

第6题:

在Java程序中需要使用随机数类,需要引入的类库是( )。

A.java.lang

B.java.io

C.java.net

D.java.util


正确答案:D
解析:本题考查Java的API结构。选项 A错误,java.lang类库在所有的Java API中是最重要的,它提供Java语言中Object、 String和Thread等核心类与接口:选项B错误,java.io类库提供系统用来读写文件或其他输入输出源的输入输出流;选项C错误, java.net类库包含一些与网络相关的类和接.口:选项D正确,java.util提供包含实用程序性质的语言支持类,如数据结构类、日期类、随机数类、属性类、观测器类等。

第7题:

在Java程序中若要使用随机数类,需要引入的类库是______。

A.java.io

B.java.net

C.java.lang

D.java.until


正确答案:D
解析:选项A中java.io类库提供系统用来读写文件或其他输入输出源的输入输出流;选项B中java.net类库包含一些与网络相关的类和接口;选项C中java.lang类库在所有的JavaAP1中是最重要的,它提供Java语言中Object、String和Thread等核心类与接口;选项D中java.util提供包含实用程序性质的语言支持类,如数据结构类、日期类、随机数类、属性类、观测器类等。所以D正确。

第8题:

阅读以下程序说明和C++程序,将程序段中(1)~(7)空缺处的语句填写完整。

[说明]

使用MFC的CSocket类在两个或者多个应用程序之间建立通信。服务器应用程序先创建一个特殊的 Socket,用于监听客户应用程序的连接请求,然后再创建新的Socket来完成连接。从客户和服务器两端读取该连接,直到一个需要处理的报文到来为止。以下C++程序将封装这些功能,这样所有应用程序需要完成的只是创建一个Socket连接,然后处理到来的报文。这将包括一个新的服务器Socket类、新客户端Socket类和新的报文队列类。

创建新的服务器Socket类程序的框架如下。第1个函数ListenEx()用于通知Socket开始监听客户应用程序。第2个函数OnAccept()在接收到连接请求时被调用。在其中创建新的Socket,并立刻设置它开始从客户应用程序读取报文,这些是通过调用第3个函数RecvThread()来完成的,该函数位于它自己的线程中。

[C++程序]

[ListenEX()函数]


正确答案:这是一道要求读者使用Socket与另一个Windows应用程序或者与任何支持Socket的应用程序通信的编程题。本题的解答思路如下。 题干已给出“函数ListenEx()用于通知Socket开始监听客户应用程序”ListenEx()通过调用CSocket的Listen()函数监听来自客户应用程序的连接请求。ListenEx()同时在结构中设置其调用参数这些参数最终被传递到RecvThread()函数以实现读操作。因此()空缺处应填入“Listen()”。 函数OnAccept()在接收到连接请求时被调用。它使用文本编辑器(TextEdit)重载CSocket的OnAccept()函数在其中将创建新的Socket用于建立与客户应用程序的连接同时使用由用户定义的标识符作为关键字将该Socket保存到对象映射表中。然后设置Socket进入同步模式并创建一个线程从套接字中读取数据。因此(2)空缺处应填入“newCSocket”用于完成初始化工作。 函数RecvThread()使用CSocket的Receive()函数等待直到通过套接字接收到新的报文。该线程假定每一个报文包含固定字长的报头和可变长度的报文体。对于每一个新的套接字报文RecvThread()还向应用程序发送WM_New_MESSAGE消息通知新的报文等待处理。如果套接字关闭线程将在终止前向应用程序发送WM_DONE_MESSAGE消息所以(3)空缺处应填入“len+=res”。该函数没有返回值所以(4)空缺处应填入“return 0”。 接下来添加函数SendEx()向客户应用程序发回报文该函数将根据用户定义的标识符从对象映射表中取出Socket对象然后调用线程函数向该Socket发送报文因此(5)空缺处应填入“m_mapSockets[id]”。 SendThread使用CSocket类的Send()函数将报文数据发送出去因此(6)空缺处应填入“Send”。 服务器套接字类中的最后需要创建关闭函数这个函数不仅将关闭监听套接字而且将关闭创建的所有与客户端连接的套接字因此(7)空缺处应填入“Close()”。
这是一道要求读者使用Socket与另一个Windows应用程序或者与任何支持Socket的应用程序通信的编程题。本题的解答思路如下。 题干已给出“函数ListenEx()用于通知Socket开始监听客户应用程序”,ListenEx()通过调用CSocket的Listen()函数监听来自客户应用程序的连接请求。ListenEx()同时在结构中设置其调用参数,这些参数最终被传递到RecvThread()函数以实现读操作。因此()空缺处应填入“Listen()”。 函数OnAccept()在接收到连接请求时被调用。它使用文本编辑器(TextEdit)重载CSocket的OnAccept()函数,在其中将创建新的Socket,用于建立与客户应用程序的连接,同时使用由用户定义的标识符作为关键字将该Socket保存到对象映射表中。然后,设置Socket进入同步模式,并创建一个线程从套接字中读取数据。因此(2)空缺处应填入“newCSocket”,用于完成初始化工作。 函数RecvThread()使用CSocket的Receive()函数等待,直到通过套接字接收到新的报文。该线程假定每一个报文包含固定字长的报头和可变长度的报文体。对于每一个新的套接字报文,RecvThread()还向应用程序发送WM_New_MESSAGE消息,通知新的报文等待处理。如果套接字关闭,线程将在终止前向应用程序发送WM_DONE_MESSAGE消息,所以(3)空缺处应填入“len+=res”。该函数没有返回值,所以(4)空缺处应填入“return 0”。 接下来添加函数SendEx()向客户应用程序发回报文,该函数将根据用户定义的标识符从对象映射表中取出Socket对象,然后调用线程函数向该Socket发送报文,因此(5)空缺处应填入“m_mapSockets[id]”。 SendThread使用CSocket类的Send()函数将报文数据发送出去,因此(6)空缺处应填入“Send”。 服务器套接字类中的最后需要创建关闭函数,这个函数不仅将关闭监听套接字,而且将关闭创建的所有与客户端连接的套接字,因此(7)空缺处应填入“Close()”。

第9题:

Java在Socket中采用了______机制,支持大量客户通信。


正确答案:多线程
多线程

第10题:

java程序中用到的所有类都必须使用import语句java.lang包中的类不需要使用import 。()

此题为判断题(对,错)。


答案:错