java用socket和serversocket实现一对一聊天(java实现简单的TCP聊天程序)
2017-08-03 21:06
1131 查看
在上次发表类似文章的基础上做了一点手脚,这次可以直接运行两个控制台,不用再去用telnet IP端口了,这个可以直接在eclipse分别执行服务器端类和客户端类,然后在客户端和服务端上进行交互。更为方便。我的代码实现如下:
首先我的文件结构是
在ServerDemo.java中编写以下代码:
在ClientDemo.java中编写以下代码:
效果如下:
ServerDemo的控制台的显示结果
ClientDemo的控制台的显示结果
94f5
首先我的文件结构是
在ServerDemo.java中编写以下代码:
package com.jiaxun.net; import java.io.IOException; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; import java.util.Scanner; public class ServerDemo { //服务器 public static void testServer(){ //创建一个服务器 System.out.println("等待客户端连接。。。"); PrintWriter pwtoclien = null; Scanner keybordscanner = null; Scanner inScanner = null; ServerSocket ss = null; try { ss = new ServerSocket(6666); //创建一个接收连接客户端的对象 Socket socket = ss.accept(); System.out.println(socket.getInetAddress()+"已成功连接到此台服务器上。"); //字符输出流 pwtoclien = new PrintWriter(socket.getOutputStream()); pwtoclien.println("已成功连接到远程服务器!"+"\t"+"请您先发言。"); pwtoclien.flush(); keybordscanner = new Scanner(System.in); inScanner = new Scanner(socket.getInputStream()); //阻塞等待客户端发送消息过来 while(inScanner.hasNextLine()){ String indata = inScanner.nextLine(); System.out.println("客户端:"+indata); System.out.print("我(服务端):"); String keyborddata = keybordscanner.nextLine(); System.out.println("我(服务端):"+keyborddata); pwtoclien.println(keyborddata); pwtoclien.flush(); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { pwtoclien.close(); keybordscanner.close(); inScanner.close(); try { ss.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } public static void main(String[] args) { testServer(); } }
在ClientDemo.java中编写以下代码:
package com.jiaxun.net; import java.io.IOException; import java.io.PrintWriter; import java.net.Socket; import java.net.UnknownHostException; import java.util.Scanner; public class ClientDemo { public static void testClient(){ System.out.println("正在向服务器请求连接。。。"); Socket socket = null; Scanner keybordscanner = null; Scanner inScanner = null; PrintWriter pwtoserver = null; try { socket = new Socket("192.168.0.12", 6666); inScanner = new Scanner(socket.getInputStream()); System.out.println(inScanner.nextLine()); pwtoserver = new PrintWriter(socket.getOutputStream()); System.out.print("我(客户端):"); //先读取键盘录入方可向服务端发送消息 keybordscanner = new Scanner(System.in); while(keybordscanner.hasNextLine()){ String keyborddata = keybordscanner.nextLine(); //展示到己方的控制台 System.out.println("我(客户端):"+keyborddata); //写到服务端的的控制台 pwtoserver.println(keyborddata); pwtoserver.flush(); //阻塞等待接收服务端的消息 String indata = inScanner.nextLine(); System.out.println("服务端:"+indata); System.out.print("我(客户端):"); } } catch (UnknownHostException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { keybordscanner.close(); pwtoserver.close(); inScanner.close(); try { socket.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } public static void main(String[] args) { testClient(); } }
效果如下:
ServerDemo的控制台的显示结果
ClientDemo的控制台的显示结果
94f5
相关文章推荐
- java用ServerSocket类结合io流实现一对一聊天(java实现简单的TCP聊天程序只能用telnet连接后方可使用)
- java-用java.net.Socket和java.net.ServerSocket实现简单的聊天程序
- [Java] Socket/ServerSocket 控制台简单聊天程序
- java实现简单TCP聊天程序
- JAVA系列课程讲座二:使用Socket通信实现简单聊天通信程序(UDP方式)
- 【java学习记录】12.用Socket网络访问方法,实现简单的网络聊天程序
- 套接字(socket)编程简单实现server-client聊天程序
- java实现基于Tcp的socket聊天程序
- java swing实现简单的socket通讯聊天程序源码
- [Java] Socket/ServerSocket 控制台简单聊天程序
- java TCPSocket聊天小程序
- 解析:通过php socket并借助telnet实现简单的聊天程序
- java网络编程一:Socket用法,简单模拟一对一聊天
- java网络编程一:Socket用法,简单模拟一对一聊天
- python socket编程实现的简单tcp迭代server
- 01 TCP Socket 编程_一个简单的服务端程序和客户端程序实现
- JavaAWT简单Socket多人聊天程序(简单明了)
- 解析:通过php socket并借助telnet实现简单的聊天程序
- java网络编程一:Socket用法,简单模拟一对一聊天
- socket 编程 TCP 实现简单聊天功能