概述
如下例子实现了利用socket简易双向通信的例子
1.建立两个java project,目录如下
2.客户端代码
package client;
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.Socket;
public class Client {
public static void main(String args[])
{
try{
//创建客户端套接字
Socket socket = new Socket("127.0.0.1", 9999);
//获取套接字输入流
InputStream is = socket.getInputStream();
DataInputStream dis = new DataInputStream(is);
//获取套接字输出流
OutputStream os = socket.getOutputStream();
DataOutputStream dos = new DataOutputStream(os);
//从键盘输入
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
//聊天
String message;
while (true) {
//读取键盘输入的字符,写到客户端输出流
message = br.readLine();
dos.writeUTF(message);
if(message.equals("88"))
break;
//读取服务器端的数据并打印到屏幕上
message = dis.readUTF();
System.out.println("服务器传回的消息:"+message);
}
//关闭流
dis.close();
dos.close();
socket.close();
}catch(Exception e)
{
e.printStackTrace();
}
}
}
3.服务器端代码
package server;
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public static void main(String args[])
{
try {
//创建一个ServerSocket,在端口号9999上监听客户端请求
ServerSocket serverSocket = new ServerSocket(9999);
Socket socket = serverSocket.accept();
//获取客户端套接字的输出流
OutputStream os = socket.getOutputStream();
DataOutputStream dos = new DataOutputStream(os);
//获取客户端输入流
InputStream is = socket.getInputStream();
DataInputStream dis = new DataInputStream(is);
//创建字符输入流接受键盘输入
InputStreamReader isr= new InputStreamReader(System.in);
BufferedReader br= new BufferedReader(isr);
//消息
String message;
while (true) {
//获取客户端输入流
message = dis.readUTF();
System.out.println("客户端发过来消息:"+message);
if(message.equals("88"))
break;
//读取键盘输入并写入到输出流
message = br.readLine();
dos.writeUTF(message);
}
dis.close();
dos.close();
serverSocket.close();
socket.close();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
}
4.调试
1>服务器端项目 Run as-->Java Application,可以打个log看下启动成功。
2>客户端项目 Run as-->Java Application,可以打个log看下启动成功。客户端运行起来后会覆盖服务端的log。
3>先将控制权调到客户端这边,即用鼠标点击客户端main方法,在控制台(console)里面输入客户端需要发送的消息,回车键即可发送。
此时控制台会输出消息客户端发过来消息:xxxxxxx(这是你自己输入的消息)
4>将控制权调到服务器这边,即用鼠标点击服务器端main方法,在控制台(console)里面输入服务器端需要发送的消息,回车键即可发送。
如下是调试截图
4.1 客户端输入,还未回车
4.2 客户端点击了回车键,服务器端收到的消息
4.3 接着,服务器端回消息
4.4 客户端再发消息
至此,完成了简单的即时通讯。
最后
以上就是妩媚钢铁侠为你收集整理的python socket双向通信_Java --socket双向通信的全部内容,希望文章能够帮你解决python socket双向通信_Java --socket双向通信所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复