Java客户端和服务器基础知识

一、Java中的网络通信是通过Socket实现的,socket分为Server Socket和Socket两大类:Server Socket用于服务器端;Socket用于建立网络连接时使用,客户端也可使用Socket发起请求并传输数据。
注:
socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄。应用程序通常通过"套接字"向网络发出请求或者应答网络请求。

1、服务器端Server Socket的使用步骤:

(1)创建Server Socket监听端口。
如:

Server Socketserver=new ServerSocket(6666);

(2)调用accept( )方法进行监听。accept方法是阻塞方法,也就是说调用accept方法后程序会停下来等待连接请求,在接受请求之前程序将不会继续执行,当接收到请求后(连接成功)accept方法返回一个Socket实例。
如:

Socket socket=server.accept();

(3)接受请求后使用Socket进行通信,创建Buffered-reader用于读取数据
如:

BufferedReader is = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String line = is.readLine();
System.out.println("received frome client:" + line); 

(4)创建Print-writer,用于发送数据
如:

PrintWriter pw = new PrintWriter(socket.getOutputStream());
pw.println("this data is from server");
 pw.flush();
**(5)关闭资源**
		如:
pw.close();
is.close();
socket.close();
server.close();

2、客户端Client的 Socket使用步骤:

(1)创建一个Socket,把目标主机的地址和端口号传入
(2)跟服务器端建立连接,创建完Socket实例
如:

    Socket socket = new Socket("192.168.6.42",8080);

(3)创建Writer和Reader来传输数据
3.1使用PrintWriter写数据

 PrintWriter pw = new PrintWriter(socket.getOutputStream());

3.2使用BufferedReader读数据

BufferedReader is = new BufferedReader(new InputStreamReader(socket.getInputStream()));

3.3发送数据

pw.println(msg);
pw.flush();

3.4接收数据

String line = is.readLine();
System.out.println("received from server" + line);

(4)数据传输完成后释放资源关闭连接

pw.close();
is.close();
socket.close();
  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值