admin管理员组文章数量:1794759
java网络编程实现聊天小程序
这里运用到的是java基于TCP的socket编程,详细讲解,请自行百度。 我这里分三步,贴出代码!
1.客户端ClientTest01.java
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.Socket; import java.UnknownHostException; import java.text.SimpleDateFormat; import java.util.Date; public class ClientTest01 { public static void main(String[] args) { BufferedReader br = null; String clientStr=""; try { //建立通信端口,并向服务器端发送通信请求 Socket s = new Socket("10.25.200.153",3838); System.out.println("与服务器端建立连接"); BusinessHanderTest01 send = new BusinessHanderTest01(s); Thread t1 = new Thread(send); t1.start(); while(true){ //获取客户端通信的信 SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); br = new BufferedReader(new InputStreamReader(s.getInputStream())); clientStr = br.readLine(); System.out.println(df.format(new Date())+" 服务器端 : "+clientStr); } } catch (UnknownHostException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }注:Socket s = new Socket(“10.25.200.153”,3838);中的第一个参数是服务器端的网络地址,第二个参数是服务器开放的端口号。
2.服务器端ServerTest01.java
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.InetAddress; import java.ServerSocket; import java.Socket; import java.text.SimpleDateFormat; import java.util.Date; public class ServerTest01 { public static void main(String[] args) throws IOException { BufferedReader br = null; String clientStr=""; ServerSocket ss = null; try { //创建一个监听的端口 ss = new ServerSocket(3838); Socket s = null; System.out.println("服务器启动..."); System.out.println("本机IP地址:"+InetAddress.getLocalHost()); //接受客户端通信请求,并建立专用通信端口 s = ss.accept(); System.out.println("客户端已连接..."); BusinessHanderTest01 send = new BusinessHanderTest01(s); Thread t1 = new Thread(send); t1.start(); while(true){ //获取客户端通信的信 SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); br = new BufferedReader(new InputStreamReader(s.getInputStream())); clientStr = br.readLine(); System.out.println(df.format(new Date())+" 客户端: "+clientStr); } } catch (Exception e) { e.printStackTrace(); }finally { ss.close(); } } }注:ss = new ServerSocket(3838);中的参数是该服务器端开放的端口号,需要与客户端填写的端口号保持一致。
3.多线程助手BusinessHanderTest01 .java
import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.Socket; import java.util.Scanner; public class BusinessHanderTest01 implements Runnable{ Socket s ; Scanner in = new Scanner(System.in); public BusinessHanderTest01(Socket s){ this.s = s; } public void run() { PrintWriter out = null; try { while(true){ out = new PrintWriter(new OutputStreamWriter(s.getOutputStream()),true); String str = in.nextLine(); out.println(str); } } catch (Exception e) { e.printStackTrace(); }finally{ out.close(); } } }运行时,需要服务器端先开启,等待客户端连接,不然会报错!
版权声明:本文标题:java网络编程实现聊天小程序 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1686839839a108880.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论