Java网络编程之套接字(Socket编程)

来源:互联网 发布:java怎么写游戏 编辑:程序博客网 时间:2024/06/05 11:45

套接字
IP地址标识Internet上的计算机,端口号标识正在计算机上运行的进程(程序),端口后被定义为一个16位的0~65535之间的整数,其中,0~1023被预定义的服务通信占用(如telnet占用端口23.http占用端口80等),除非需要访问这些特定服务,否则需要使用1024-65535这些端口的某一个进行通信,以免发生端口冲突,当两个程序需要通信时,他们可以通过Socket类建立套接字对象并连接到一起(端口号和IP地址的组合得出一个网络套接字)。
客户端的套接字对象
客户端的程序使用Socket类建立负责连接到服务器的套接字对象。
Socket的构造方法时Socket(String host,int port),参数host是服务器的IP的地址,
port是一个端口号,建立套接字可能发生IOException 异常,因此应该像下面一样建立连接到服务器的套接字对象。

try{    Socket mScocket = new Socket("http://123.123.123.123",1880);}catch(Exception e){}

在套接字mSocket 对象建立后,你可以想象一条通信线路已经建立起来。mSocket可以使用方法getInputStream()获得一个输入流,然后用这个输入流读取服务器放入“线路”的信息(但不能读取自己放入线路的信息,就像打电话一样,我们只能听到对方放入线路的声音一样)。mScoket还可以使用方法getOutputStream()获得一个输入流,然后用这个输出流将信息写入“线路”。
在实际编写程序时,把mSocket使用方法getInputStream()获得的输入流接到另一个数据流上(回忆在文件输入/输出流所进行的连接,道理是一样的),然后就可以从这个数据流读取从服务器中来的信息了,之所以这样做是因为后面DataInputStream流有更好地从流中读取信息的方法。同样,把mSocket使用方法getOutputStream数据流上,然后向这个数据流写入信息,发送给服务器端,之所以这样做是因为后面的DataOutputStream流有更好地向流中写入信息的方法