gpt4 book ai didi

Java基于Tcp协议的socket编程实例

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 26 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章Java基于Tcp协议的socket编程实例由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

本文实例讲述了Java基于Tcp协议的socket编程方法,分享给大家供大家参考。具体分析如下:

以下是一对一的通信编程实现,后续会继续学习一个服务器监听多个客户端的实现.

这里用到的主要步骤如下:

第一步:以特定端口(如4800)新建socket对象 第二步:以系统输入设备构造BufferedReader对象,该对象用于接收系统键盘输入的字符 第三步:以socket对象 得到输出流来构造PrintWriter 第四步:以socket对象得到输入流来构造相应的BufferedReader对象,该对象用于接收server端发送过来的信息 。

我理解到的关闭socket:先开的后关闭,socket最后关闭.

以下是客户端的代码实现:

复制代码代码如下:

package com.fan.socket,

  。

import java.io.*; import java.net.Socket,

public class SocketClient { public static void main(String[] args) throws IOException{ 。

try{ Socket socket=new Socket("127.0.0.1",4800); System.out.println("client start ..."); //向本机的4800端口发出客户请求 BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); //由系统标准输入设备构造BufferedReader对象 PrintWriter write=new PrintWriter(socket.getOutputStream()); //由Socket对象得到输出流,并构造PrintWriter对象 BufferedReader in=new BufferedReader(new InputStreamReader(socket.getInputStream())); //由Socket对象得到输入流,并构造相应的BufferedReader对象 String readline; readline=br.readLine(); //从系统标准输入读入一字符串 while(!readline.equals("end")){ //若从标准输入读入的字符串为 "end"则停止循环 write.println(readline); //将从系统标准输入读入的字符串输出到Server2 write.flush(); //刷新输出流,使Server马上收到该字符串 System.out.println("Client:"+readline); //在系统标准输出上打印读入的字符串 System.out.println("Server:"+in.readLine()); //从Server读入一字符串,并打印到标准输出上 readline=br.readLine(); //从系统标准输入读入一字符串 } //继续循环 write.close(); //关闭Socket输出流 in.close(); //关闭Socket输入流  socket.close(); //关闭Socket  }catch(Exception e) { System.out.println("can not listen to:"+e);//出错,打印出错信息 } } 。

} 。

  。

服务端代码实现:

复制代码代码如下:

package com.fan.socket,

  。

import java.io.*; import java.net.ServerSocket; import java.net.Socket,

public class SocketService { public static void main(String[] args) throws IOException{ SocketService socketService = new SocketService(); socketService.oneServer(); } 。

public void oneServer(){ try{ ServerSocket server=null; try{ server=new ServerSocket(4800); System.out.println("server start is ok..."); //创建一个ServerSocket在端口4800监听客户请求 }catch(Exception e) { System.out.println("can not listen to:"+e); //出错,打印出错信息 } Socket socket=null; try{ socket=server.accept(); //使用accept()阻塞等待客户请求,有客户 //请求到来则产生一个Socket对象,并继续执行 }catch(Exception e) { System.out.println("Error."+e); //出错,打印出错信息 } String line; BufferedReader in=new BufferedReader(new InputStreamReader(socket.getInputStream())); //由Socket对象得到输入流,并构造相应的BufferedReader对象 PrintWriter writer=new PrintWriter(socket.getOutputStream()); //由Socket对象得到输出流,并构造PrintWriter对象 BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); //由系统标准输入设备构造BufferedReader对象 System.out.println("Client:"+in.readLine()); //在标准输出上打印从客户端读入的字符串 line=br.readLine(); //从标准输入读入一字符串 while(!line.equals("end")){ //如果该字符串为 "bye",则停止循环 writer.println(line); //向客户端输出该字符串 writer.flush(); //刷新输出流,使Client马上收到该字符串 System.out.println("Server:"+line); //在系统标准输出上打印读入的字符串 System.out.println("Client:"+in.readLine()); //从Client读入一字符串,并打印到标准输出上 line=br.readLine(); //从系统标准输入读入一字符串 } //继续循环 writer.close(); //关闭Socket输出流 in.close(); //关闭Socket输入流 socket.close(); //关闭Socket server.close(); //关闭ServerSocket }catch(Exception e) {//出错,打印出错信息 System.out.println("Error."+e); } } } 。

  。

希望本文所述对大家的Java程序设计有所帮助.

最后此篇关于Java基于Tcp协议的socket编程实例的文章就讲到这里了,如果你想了解更多关于Java基于Tcp协议的socket编程实例的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com