java网络编程

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

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

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

客户端

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;


public class javaServer {
public static void main(String[] args) {
try {
ServerSocket ss = new ServerSocket(1408); //创建了一个ServerSocket,端口号为1408;
Socket socket = ss.accept(); //创建了一个Socket的对象等待用户连接

DataOutputStream dos = new DataOutputStream(socket.getOutputStream());
dos.writeUTF("1"); //传送给客户端一个值为1的圆的半径
dos.flush(); //清空此数据输出流


DataInputStream dis = new DataInputStream(socket.getInputStream());
System.out.println("圆的面积是"+dis.readUTF()); //将客户端返回给服务器的结果输出
dos.close(); //关闭输出流
dis.close(); //关闭输入流
ss.close(); //关闭ServerSocket
socket.close(); //关闭Socket
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

}




客户端


import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.*;

import org.omg.CORBA.portable.OutputStream;
public class javaClient {
public static void main(String[] args) {
int temp = 0,result;
try {

Socket s = new Socket("localhost",1408); //建立一个Socket的对象,端口号与服务器端保持一致

DataInputStream dis = new DataInputStream(s.getInputStream());
temp = Integer.parseInt(dis.readUTF());
System.out.println("圆的半径是"+temp);
result = (int) (Math.PI*temp*temp); //计算圆的面积


DataOutputStream dos = new DataOutputStream(s.getOutputStream());
dos.writeUTF(result+""); //让结果变成String型
dis.close();
dos.flush();
dos.close();
s.close();
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

}




输出的结果,客户端输出的结果
圆的半径是1


服务器端输出的结果
圆的面积是3
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值