[转帖]java网络编程_Android, Python及开发编程讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Android, Python及开发编程讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 2914 | 回复: 0   主题: [转帖]java网络编程        下一篇 
只是很无聊
注册用户
等级:中尉
经验:440
发帖:33
精华:0
注册:2013-6-18
状态:离线
发送短消息息给只是很无聊 加好友    发送短消息息给只是很无聊 发消息
发表于: IP:您无权察看 2013-6-19 9:52:50 | [全部帖] [楼主帖] 楼主

java网络编程如果在一台机器上可以用到一个回文地址做测试,127.0.0.1(localhost).
java网络编程用到socket类,socket 是面向客户/服务器模型而设计的,也就是常说的c/s模式。

1.网络编程需要有一个服务器端,在服务器端创建一个ServerSocket,然后掉用accept方法等待客户端连接。
2.客户端需要创建一个Socket,并请求与服务器连接。
3.服务器接收客户端的连接请求,并创建一个新的Socket与用户进行连接,连接的时候需要注意客户端的端口号与服务器端的端口号要保持一致。
4.端口号0———1023不能够随意的使用,所以挑选端口号的时候要用1024以后的

下面是我写的一个小例子,服务器端给了客户端一个圆的半径为1,然后服务器端计算出来结果,再用流的方式返回给服务器端。

客户端

Java代码  
北京联动北方科技有限公司

  1. import java.io.DataInputStream; 
  2. import java.io.DataOutputStream; 
  3. import java.io.IOException; 
  4. import java.net.ServerSocket; 
  5. import java.net.Socket; 
  6. public class javaServer { 
  7.        public static void main(String[] args) { 
  8.              try { 
  9.                    ServerSocket ss = new ServerSocket(1408); //创建了一个ServerSocket,端口号为1408; 
  10.                    Socket socket = ss.accept(); //创建了一个Socket的对象等待用户连接 
  11.                   
  12.                    DataOutputStream dos = new DataOutputStream(socket.getOutputStream()); 
  13.                    dos.writeUTF("1"); //传送给客户端一个值为1的圆的半径 
  14.                    dos.flush(); //清空此数据输出流 
  15.                   
  16.                   
  17.                    DataInputStream dis = new DataInputStream(socket.getInputStream()); 
  18.                    System.out.println("圆的面积是"+dis.readUTF()); //将客户端返回给服务器的结果输出 
  19.                    dos.close(); //关闭输出流 
  20.                    dis.close(); //关闭输入流 
  21.                    ss.close(); //关闭ServerSocket 
  22.                    socket.close(); //关闭Socket 
  23.              } catch (IOException e) { 
  24.                    // TODO Auto-generated catch block 
  25.                    e.printStackTrace(); 
  26.              } 
  27.             
  28.        } 
  29.       



客户端

Java代码  
北京联动北方科技有限公司

  1. import java.io.DataInputStream; 
  2. import java.io.DataOutputStream; 
  3. import java.io.IOException; 
  4. import java.net.*; 
  5. import org.omg.CORBA.portable.OutputStream; 
  6. public class javaClient { 
  7.        public static void main(String[] args) { 
  8.              int temp = 0,result; 
  9.              try { 
  10.                   
  11.                    Socket s = new Socket("localhost",1408); //建立一个Socket的对象,端口号与服务器端保持一致 
  12.                   
  13.                    DataInputStream dis = new DataInputStream(s.getInputStream()); 
  14.                    temp = Integer.parseInt(dis.readUTF()); 
  15.                    System.out.println("圆的半径是"+temp); 
  16.                    result = (int) (Math.PI*temp*temp); //计算圆的面积 
  17.                   
  18.                   
  19.                    DataOutputStream dos = new DataOutputStream(s.getOutputStream()); 
  20.                    dos.writeUTF(result+""); //让结果变成String型 
  21.                    dis.close(); 
  22.                    dos.flush(); 
  23.                    dos.close(); 
  24.                    s.close(); 
  25.              } catch (UnknownHostException e) { 
  26.                    // TODO Auto-generated catch block 
  27.                    e.printStackTrace(); 
  28.              } catch (IOException e) { 
  29.                    // TODO Auto-generated catch block 
  30.                    e.printStackTrace(); 
  31.              } 
  32.             
  33.        } 
  34.       



输出的结果,客户端输出的结果

Java代码  
北京联动北方科技有限公司

  1. 圆的半径是1  


服务器端输出的结果

Java代码  
北京联动北方科技有限公司

  1. 圆的面积是3 



赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论