预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共16页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

java编程_socket_套接字_网络编程 实现原理: ============================================================ 服务器,使用ServerSocket监听指定的端口,端口可以随意指定(由于1024以下 的端口通常属于保留端口, 在一些操作系统中不可以随意使用,所以建议使用大于1024的端口), 等待客户连接请求,客户连接后,会话产生;在完成会话后,关闭连接。 ============================================================ 客户端,使用Socket对网络上某一个服务器的某一个端口发出连接请求,一旦连接 成功,打开会话;会话完成后, 关闭Socket。客户端不需要指定打开的端口,通常临时的、动态的分配一个1024 以上的端口。 ============================================================ 服务器端代码: 1packagecom.b510.socket1703; 2 3importjava.io.*; 4importjava.net.Socket; 5importjava.net.ServerSocket; 6 7/** 8*服务器断的工作就是在指定的端口上监听 9*<li>建立连接</li> 10*<li>打开输出流</li> 11*<li>封装输出流</li> 12*<li>向客户端发送数据</li> 13*<li>关闭打开的输出流</li> 14*<li>关闭打开的socket对象</li> 15* 16*@authorHongten 17* 18*@time2012-4-292012 19*/ 20publicclassTestServer{ 21publicstaticvoidmain(Stringargs[]){ 22try{ 23//指定服务器端的端口号为8888 24ServerSockets=newServerSocket(8888); 25while(true){ 26//建立连接 27Socketsocket=s.accept(); 28//打开输出流 29OutputStreamos=socket.getOutputStream(); 30//封装输出流 31DataOutputStreamdos=newDataOutputStream(os); 32//s<li>.getInetAddress()获取远程ip地址, s<li>.getPort()远程客户端的断后好 33//向客户端发送数据 34dos.writeUTF("你好,客户端地址信息:"+ socket.getInetAddress() 35+"\t客户端通信端口号:"+socket.getPort()); 36dos.writeUTF("i'maserver,mynameishongten!"); 37//关闭打开的输出流 38dos.close(); 39//关闭打开的socket对象 40socket.close(); 41}//开始下一此循环 42}catch(IOExceptione){ 43e.printStackTrace(); 44} 45} 46} 客户端代码: 1packagecom.b510.socket1703; 2 3importjava.io.*; 4importjava.net.Socket; 5 6/** 7*客户端 8*@authorHongten 9* 10*@time2012-4-292012 11*/ 12publicclassTestClient{ 13publicstaticvoidmain(Stringargs[]){ 14try{ 15//创建socket对象,指定服务器的ip地址,和服务器监听的端 口号 16//客户端在new的时候,就发出了连接请求,服务器端就会进行 处理,如果服务器端没有开启服务,那么 17//这时候就会找不到服务器,并同时抛出异常==》 java.net.ConnectException:Connection 18//refused:connect 19Sockets1=newSocket("127.0.0.1",8888); 20//打开输入流 21InputStreamis=s1.getInputStream(); 22//封装输入流 23DataInputStreamdis=newDataInputStream(is); 24//打印服务器端发送过