java 通信 教程_Java实现简单的socket通信教程
今天学习了一下java如何实现socket通信,感觉难点反而是在io上,因为java对socket封装已经很完善了。
今天代码花了整个晚上调试,主要原因是io的flush问题和命令行下如何运行具有package的类,不过最后问题基本都解决了,把代码贴出来供大家参考
server
public class TcpServer {
public static void main(String[] args) throws Exception {
ServerSocket server = new ServerSocket(9091);
try {
Socket client = server.accept();
try {
BufferedReader input =
new BufferedReader(new InputStreamReader(client.getInputStream()));
boolean flag = true;
int count = 1;
while (flag) {
System.out.println(客户端要开始发骚了,这是第 + count + 次!);
count++;
String line = input.readLine();
System.out.println(客户端说: + line);
if (line.equals(exit)) {
flag = false;
System.out.println(客户端不想玩了!);
} else {
System.out.println(客户端说: + line);
}
}
} finally {
client.close();
}
} finally {
server.close();
}
}
}
client
public class TcpClient {
public static void main(String[] args) throws Exception {
Socket client = new Socket(127.0.0.1, 9091);
try {
PrintWriter output =
new PrintWriter(client.getOutputStream(), true);
Scanner cin = new Scanner(System.in);
String words;
while (cin.hasNext()) {
words = cin.nextLine();
output.println(words);
System.out.println(写出了数据: + words);
}
cin.close();
} finally {
client.close();
}
}
}
补充知识:Java-Socket通信 同时JSON传递与解析
服务端
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;
import net.sf.json.JSONObject;
public class Server_2 {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
InputStreamReader isr;
BufferedReader br;
OutputStreamWriter osw;
BufferedWriter rw;
try {
ServerSocket serverSocket=new ServerSocket(4444);
Socket socket=serverSocket.accept();
isr=new InputStreamReader(socket.getInputStream());
br=new BufferedReader(isr);
String str=br.readLine();
JSONObject object=JSONObject.fromObject(str);
System.out.println("ID:"+object.getInt("ID"));
System.out.println("Name:"+object.getString("name"));
System.out.println("password:"+object.getString("password"));
br.close();
socket.close();
serverSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
客服端
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.Socket;
import java.util.Scanner;
import net.sf.json.JSONObject;
public class Client_2 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
InputStreamReader isr;
BufferedReader br;
OutputStreamWriter osw;
BufferedWriter rw;
try {
Socket socket = new Socket("localhost", 4444);
osw = new OutputStreamWriter(socket.getOutputStream());
rw = new BufferedWriter(osw);
User user = new User();
System.out.println("Id:");
user.setID(in.nextInt());
in.nextLine();
System.out.println("Name:");
user.setName(in.nextLine());
System.out.println("Password:");
user.setPassword(in.nextLine());
JSONObject jsonObject = JSONObject.fromObject(user);
rw.write(jsonObject.toString()+"\n");
rw.close();
socket.close();
} catch (Exception e) {
// TODO: handle exception
}
}
}
User
public class User {
int ID;
String name;
String password;
public int getID() {
return ID;
}
public void setID(int iD) {
ID = iD;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
以上这篇Java实现简单的socket通信教程就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持聚米学院。
java 通信 教程_Java实现简单的socket通信教程相关推荐
- java tcp 乱码_Java和C++通过Socket通信中文乱码的解决
理想的开发状态是我开始就是C开发,一直是C的开发,现在还是C的开发,若干年后,幸运的话,我可以成为C语言的高手或者专家-- 更实际的情况是我开始是C开发,后来变成了JAVA开发,然后又做起了VC++的 ...
- Android简单实现Socket通信,客户端连接服务器后,服务器向客户端发送文字数据
案例实现的是简单的Socket通信,当客户端(Android客户端)连接到指定服务器以后,服务器向客户端发送一句话文字信息(你可以拓展其它的了) 先看一下服务端程序的实现吧 Server.java i ...
- 简单的socket通信实现
一.什么是socket网络通信? socket也称作"套接字",描述了计算机的IP地址和端口,运行在计算机中的程序之间采用socket进行数据通信.通信的两端都有socket,它是 ...
- 基于TCP/IP协议的Java服务端与Android客户端的Socket通信及数据交互
基于TCP/IP协议的Java服务端与Android客户端的Socket通信及数据交互 一.前言 1.Java服务端程序代码的项目名为TcpSocketServerOfJava,包名为com.exam ...
- 使用vb.net开发简单的socket通信
使用vb.net开发简单的socket通信(环境是visual stdio 2019) 说明 参考文章 实现功能 效果展示 代码 服务端 客户端 总结 说明 之前用vb6编程时都是用的winsock控 ...
- UDP通信——使用python实现简单的UDP通信
UDP通信--使用python实现简单的UDP通信 UDP 的英文单词是User Datagram Protocol,缩写为UDP,是一种用户数据报协议,又称为用户数据报文协议,是一种报文的协议,是一 ...
- Socket通信学习(一):Socket通信原理
Socket通信学习(一):Socket通信原理 HoloLens的开发最近需要用到Socket通信,所以创建本系列进行记录,欢迎大家批评指正! 前言 应用Socket进行设备通信,首先需要了解Soc ...
- java程序设计之网络编程基础教程_Java程序设计之网络编程基础教程
基本信息 书名:Java程序设计之网络编程基础教程(21世纪高等学校计算机基础实用规划教材) :43.50元 作者:李芝兴 主编 出版社:清华大学出版社 出版日期:2012-12-1 ISBN:978 ...
- java sslsocket程序_JAVA与C++进行sslsocket通信,JAVA做服务端或客户端
前几天有位网友问我关于Unity3D里面使用Protobuf的方法,一时有事拖到现在才写这篇文章,不好意思哈. 本文测试环境: 系统:WINDOWS 7(第3.6步).OS X 10.9(第4步) 软 ...
最新文章
- java 读取excel_Java12POI操作Excel
- 不明原因的约束报错的两种处理方式
- Java设计模式(十一):组合设计模式
- android webviwe 头布局,Android布局问题,带有WebView下方的按钮
- win7系统锁定计算机设置方法
- python编程函数_python函数式编程
- ubuntu 一张网卡绑定多个ip
- diabetes影响因子2017_2017年度影响因子看点和预测(MedSci出品)
- 巴比特 | 元宇宙每日荐读:三位手握“价值千万”藏品的玩家,揭秘数字藏品市场“三大套路”...
- iframe预览文件
- 【Processing】行走的行星 动态海报 processing艺术与科技
- 出门在外如何保管毕业证原件_出门在外时如何控制HomeKit智能家居
- C++:实现量化Overnight-indexed swap 隔夜指数掉期测试实例
- OpenGL 相关的理论
- 如何在未越狱iOS设备上安装IPA
- 实践一年之久,vivo 如何基于 APISIX 进行业务基础架构的演进
- 15个漂亮的国外Flash网站模板下载
- 控制结构(强化):12.阿迪玩游戏
- C语言 求一元二次方程ax2+bx+c=0的根
- MapBox加载不同风格的地图