我是靠谱客的博主 妩媚钢铁侠,最近开发中收集的这篇文章主要介绍python socket双向通信_Java --socket双向通信,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

如下例子实现了利用socket简易双向通信的例子

1.建立两个java project,目录如下

178b21ebc474a53bd9a6faf7ad188729.png

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 客户端输入,还未回车

2a93905e923397bb97e696ca049b8d64.png

4.2 客户端点击了回车键,服务器端收到的消息

1ebecaaec2c4acf862361f5408dc63ff.png

4.3 接着,服务器端回消息

e0f8bc67161b9b45956183b5231e424e.png

4.4 客户端再发消息

07803c89a9e06cbfe166e3d6278e723c.png

至此,完成了简单的即时通讯。

最后

以上就是妩媚钢铁侠为你收集整理的python socket双向通信_Java --socket双向通信的全部内容,希望文章能够帮你解决python socket双向通信_Java --socket双向通信所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部