连接到服务器的套接字对象
1、当套接字连接mysocket建立后,可以想象一条通信“线路”已经建立起来。mysocket可以使用getI
putStream方法获得一个输入流,然后用这个输入流读取服务器放入“线路”的信息。mysocket还可以使用getOutputStream方法获得一个输出流,然后用这个输出流将信息写入“线路”。2、在实际编写程序时,把mysocket使用getI
putStream方法获得的输入流接到另一个数据流上,然后就可以从这个数据流读取服务器来的信息,之所以这样是因为后面DataI
putStream流有更好的从流中读取信息的方法。3、同样把mysocket使用getOutputStream方法得到的输出流接到另一个DataOutputStream数据流上,然后向这个数据流写入信息,发送给服务器端,之所以这样做也是因为后面的DataOutputStream流有更好的向流中写入信息的方法。
4
f山东科技大学学生课程设计322ServerSocket类
1、客户负责建立客户到服务器的套接字连接,即客户负责呼叫。因此服务器必须建立一个等待接收客户的套接字的ServerSocket对象。ServerSocket的构造方法如下:ServerSocketi
tportport是一个端口号。port必须和客户呼叫的端口号相同
2、所谓接收客户的套接字连接就是accept方法会返回一个和客户端Socket对象相连接的Socket对象,服务器端的这个Socket对象sc使用getOutputStream方法获得的输出流将指向客户端Socket对象myscoket使用getI
putStream方法获得的那个输入流;同样,服务器端的这个Socket对象sc使用使用的getI
putStream方法获得的输入流将指向客户端Socket对象
myscoket使用getOutputStream方法获得的那个输出流。3、连接建立以后,服务器端的套接字对象调用getI
etAddress方法可以获取一个I
etAddress对象,该对象含有客户端的IP地址和域名。同样,客户端的套接字对象调用getI
etAddress方法可以获取一个I
etAddress对象,该对象含有服务器端的IP地址和域名。双方通信完毕后,应使用close方法关闭套接字连接。
323把套接字连接放在一个线程里
需要注意的是,从套接字连接中读取数据与从文件中读取数据有很大的不同。尽管两者都是输入流,但从文件中读取数据时,所有的数据都已经在文件上了,而使用套接字连接时,可能在另一端数据发送出来之前,就已经开始试着读取了,这时,就会堵塞本线程,直到该读取方法成功读取信息,本线程才继续执行后续的操作。因此,服务器端收到一个客户的套接字后,就应该启动专门为该客户服务的线程。
33主要代码分析
331使用套接字实现的主要方法
服务器为每个客户启动一个线程r