服务端代码:
import java.io.*;
import java.net.*;
class Server
{
public static void main(String[] args)
{
try
{
//创建一个服务端并设置端口
ServerSocket server=new ServerSocket(5555);
//监听客户端Socket
Socket client=server.accept();
//得到客户端的输入流
BufferedReader in=new BufferedReader(new InputStreamReader(client.getInputStream()));
//得到客户端的输出流
PrintWriter out=new PrintWriter(client.getOutputStream());
//得到服务端的输入流
BufferedReader wt=new BufferedReader(new InputStreamReader(System.in));
while(true)
{
//得到客户端消息
String client_msg=in.readLine();
//显示
System.out.println(client_msg);
//得到服务端输入内容
String server_msg=wt.readLine();
//利用客户端的输出流发送将内容发送到客户端
out.println(server_msg);
//刷新客户端
out.flush();
//如果客户端输入end 关闭客户端Socket
if(str.equals("end"))
{
client.close();
break;
}
}
}
catch (Exception x)
{
System.out.println(x.toString());
}
}
}
客户端代码:
import java.io.*;
import java.net.*;
class Client
{
static Socket server;
public static void main(String[] args)
{
try
{
//连接服务端端口创建一个客户端
server=new Socket(InetAddress.getLocalHost(),5555);
//得到服务端的输入流
BufferedReader in=new BufferedReader(new InputStreamReader(server.getInputStream()));
//得到服务端的输出流
PrintWriter out=new PrintWriter(server.getOutputStream());
//得到客户端的输入流
BufferedReader wt=new BufferedReader(new InputStreamReader(System.in));
while(true)
{
//客户端输入内容
String str=wt.readLine();
//发送到服务端
out.println(str);
//刷新服务端
out.flush();
//如果服务端端输入end 关闭服务端端Socket
if(str.equals("end"))
{
server.close();
break;
}
//显示服务端发送的内容
System.out.println(in.readLine());
}
}
catch (Exception x)
{
System.out.println(x.toString());
}
}
}
这种模式我们可以用这个图来表示:
双方都获得了对方的IO流,当输入完毕敲回车后消息就保存在了对方的Input流中并发送过去,然后对方就可以readLine()显示了
已经实现聊天的基本内容,不过尚有两个功能未实现,一个是多客户端聊天,还有就是这个程序只能是你一句我一句的发送,不能连续发送多条消息,汗~~,本人也是初学,还望高手多多指教,小弟感激不尽
分享到:
相关推荐
java socket教程java socket教程java socket教程
JAVA Socket教程 Java网络编程之传输控制协议 Socket套接字—Java套接字编程
Java Socket 聊天通信演示代码 Java Socket 聊天通信演示代码
java socket client 断线重连的简单实现 有什么意见可以提哦
java socket使用加密协议传输对象
java socket 学习资料java socket 学习资料java socket 学习资料java socket 学习资料java socket 学习资料
java socket源码解析 java socket源码解析 java socket源码解析 java socket源码解析
Java Socket编程.pdf Java Socket编程.pdf Java Socket编程.pdf
Java Socket 操作 Demo import java.awt.Color; import java.awt.Dimension; import java.awt.Point; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.io.BufferedReader; import ...
这是一个很好的Java Socket入门介绍,对没写过Socket程序的很有帮助
1. 满足具有Socket客户端需求的基本应用. 2. 满足具有Socket服务端的基本应用. 具备并发能力, 能满足可设定个数客户端连接. 参考个人博客: http://blog.csdn.net/ostrichmyself/article/details/6618349
java socket USB和 串口通讯,使用java程序与硬件通讯的三种方式。
Java 基于socket聊天室客户端的代码
Java Socket传输图片源代码;短小精悍,适合初学者学习参考使用
java Socket 编程配套源码
java socket处理硬件传过来的16进制数据的工具类,包含大小端转换、byte[]数组转换为16进制的字符串、byte[]转ByteBuffer、16进制字符串转换为byte数组等
java socket 聊天系统 java传输文件 多线程聊天系统
java socket nginx tcp转发 用户真实IP测试,文章请看我的博客
用JAVA实现的文件上传,控制台输入,保存到数据库
java socket 编程文档