简单的控制台聊天(TCP)
时间:2020-04-16
本文章向大家介绍简单的控制台聊天(TCP),主要包括简单的控制台聊天(TCP)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.util.Scanner;
//TCP通信客户端
public class TCPClient {
public static Scanner scanner=new Scanner(System.in);
public static void main(String[] args) throws IOException {
Socket socket=new Socket("127.0.0.1",8888);
System.out.println("到达客户端。。。");
OutputStream os = socket.getOutputStream();
os.write("服务器是你吗?".getBytes());
while (true){
InputStream is = socket.getInputStream();
byte[] bytes =new byte[1024];
int len = is.read(bytes);
System.out.println("服务器:"+new String(bytes,0,len));
String cilent = scanner.nextLine();
os.write(cilent.getBytes());
//关闭流,释放资源
// os.close();
}
}
}
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;
//TCP通信服务端
public class TCPServer {
public static Scanner scanner = new Scanner(System.in);
public static void main(String[] args) throws IOException {
ServerSocket server = new ServerSocket(8888);
Socket socket = server.accept();
System.out.println("启动服务。。。");
while (true){
InputStream is = socket.getInputStream();
byte[] bytes = new byte[1024];
int len = is.read(bytes);
System.out.println("客户端: "+new String(bytes, 0, len));
OutputStream os = socket.getOutputStream();
// os.write("我是服务器".getBytes());
String servers = scanner.nextLine();
os.write(servers.getBytes());
// os.close();
// server.close();
}
}
}
原文地址:https://www.cnblogs.com/LQ970811/p/12713180.html
- MySQL Regular Expression
- Jenkin-持续集成
- 4.3.4.7 Pattern Matching
- mysql left join、right join、inner join用法分析
- _CrtSetDbgFlag
- UNPv13:#第3章#套接字编程简介
- UNPv13:#第4章#基于TCP套接字编程
- UNPv13:#第5章#TCP客户/服务器程序示例
- MySQL replace用法简介
- YV12转RGB24的计算转换和bmp(dib)文件的显示保存
- 零基础入门深度学习 | 第四章:卷积神经网络
- MySQL binlog日志大小超过限定范围
- MySQL系列优化(一)
- 临时表tmp table如何避免
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 因式分解(计蒜网)
- 区间合并(计蒜网)
- AtCoder Beginner Contest 161 A~~F
- 试题 算法训练 猴子吃包子
- 蓝桥杯 试题 基础练习 字符串对比
- 蓝桥杯 试题 基础练习 矩阵乘法
- 蓝桥杯 试题 基础练习 矩形面积交
- 蓝桥杯 试题 基础练习 完美的代价(详细c++)
- 牛客小白月赛23 部分题解
- AtCoder Beginner Contest 159 A~~D
- 最大连续子序列和(最大子数组和)四种最详细的解法
- 玩转 Linux 环境下日期的语法
- dubbo学习之事件通知实践
- Panasonic Programming Contest 2020 A ~~C
- 采用递归生成排列