Java通过ServerSocket与Socket实现通信,各种例子
创始人
2024-04-04 21:48:16
0

字符流输出时如果用os.wirte输出,接受端要只能用字节流接受
字符流输出时如果用os.println输出,接受端可用字节流接受,也可用字符流接受
os.println()只能输出字符或者字符串,如果是字节,接受端解析不出来
is.readLine(),是字符输出流独有的,直接输出内容,直接输出流没有此方法
new String(Byte[]),接受字节流的数据读取,与byte[] byteData = new byte[1024 * 1024]一起使用;
接受流都用缓存流来接受:
输入字符缓存流:BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
输入字节缓存流:BufferedInputStream reader = new BufferedInputStream(socket.getInputStream());
输出字符缓存流:PrintWriter pw = new PrintWriter(socket.getOutputStream());
输出字节缓存流:PrintStream pw = new PrintStream(socket.getOutputStream());

1:简单的一次(字符) 通讯ServerSocket

import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.SocketException;public class TcpServer{public static void main(String[] args) {try {//创建一个serverSocket监听一个8080端口ServerSocket server = new ServerSocket(8089);//等待请求Socket socket = server.accept();//接收到请求后使用socket通信BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));String line = reader.readLine();System.out.println("收到客户端信息:" + line);//向客户端发送信息PrintWriter pw = new PrintWriter(socket.getOutputStream());pw.println("我收到了信息:" + line);pw.flush();pw.close();reader.close();socket.close();server.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}
}

2:简单的一次(字符) 通讯Socket

import java.io.*;
import java.net.Socket;public class TcpClient {public static void main(String[] args) {String msg = "我是客户端";try {Socket cli = new Socket("127.0.0.1", 8089);PrintWriter pw = new PrintWriter(cli.getOutputStream());BufferedReader br = new BufferedReader(new InputStreamReader(cli.getInputStream()));pw.println(msg);pw.flush();String line = br.readLine();System.out.println("收到服务端信息:" + line);pw.close();br.close();cli.close();} catch (Exception e) {e.printStackTrace();}}
}

3:简单的一次(字节) 通讯ServerSocket


import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;public class MyClass {public static void main(String[] args) {try {//创建一个serverSocket监听一个8080端口ServerSocket server = new ServerSocket(8089);//等待请求Socket socket = server.accept();byte[] byteData = new byte[1024 * 1024];//接收到请求后使用socket通信BufferedInputStream reader = new BufferedInputStream(socket.getInputStream());int line = reader.read(byteData);System.out.println("收到客户端信息:" + new String(byteData));//向客户端发送信息PrintStream pw = new PrintStream(socket.getOutputStream());String out="我收到了信息:";pw.write(out.getBytes());pw.flush();pw.close();reader.close();socket.close();server.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}
}

4:简单的一次(字节) 通讯Socket

import java.io.*;
import java.net.Socket;public class TcpClient {public static void main(String[] args) {String msg = "我是客户端";try {Socket cli = new Socket("127.0.0.1", 8089);byte[] byteData = new byte[1024 * 1024];PrintStream pw = new PrintStream(cli.getOutputStream());BufferedInputStream br = new BufferedInputStream(cli.getInputStream());pw.write(msg.getBytes());pw.flush();int line = br.read(byteData);System.out.println("收到服务端信息:" + new String(byteData));pw.close();br.close();cli.close();} catch (Exception e) {e.printStackTrace();}}
}

相关内容

热门资讯

人社部等三部门:对不裁员少裁员... 格隆汇4月22日|近日,人力资源社会保障部、财政部、税务总局三部门联合印发《关于延续实施失业保险稳岗...
朗新集团2024年营收44.7... 上证报中国证券网讯 4月21日晚,朗新集团发布2024年度业绩报告。2024年,受到非核心业务剥离重...
箭牌家居2024年净利润667... 来源:环球网 【环球网综合报道】4月21日,箭牌家居发布2024年年报,公司营业收入为71.3亿元,...
240小时过境免签入境政策助力... 广州边检移民管理警察为广交会客商提供优质高效服务。广州边检移民管理警察为广交会客商提供优质高效服务。...
“为了写作要支付孤独这份费用”... 转自:北京日报客户端“ 北京的春天,还有我遇到的人都给我很炙热、很温暖的感觉。”韩国作家崔恩荣受磨铁...
【财经面对面·预告片】一条腿撑... 【开栏的话】茶叶、中药材、小粒咖啡……这些特产都是云南的王牌。围绕云南特色产业,“财经面对面”栏目将...
大豪科技一季度扣非净利润增长2... 上证报中国证券网讯 4月21日晚间,大豪科技发布一季报显示,公司2025年第一季度扣除非经常性损益的...
一图看懂丨走!上军舰 转自:北京日报客户端来源:北京日报客户端
苹果产区调研显示:低温、大风或... 转自:新华财经4月13日前后,我国多数苹果产区出现降温及大风天气,当前部分产地处于苹果花期。卓创资讯...
知名跨国药企子公司被处罚99万... 本报记者 晏国文 卢志坤 北京报道(行政处罚信息摘要。上海市市场监管局官网/图)“某知名跨国药企子公...
杰美特涨2.17%,成交额32... 4月22日,杰美特盘中上涨2.17%,截至14:26,报30.20元/股,成交3298.65万元,换...
招商丰盛稳定增长混合季报解读:... 招商丰盛稳定增长灵活配置混合型证券投资基金2025年第1季度报告已发布,报告期内多项数据变化明显,其...
共话中国经济新机遇丨专访:“每... 转自:上观新闻新华社柏林4月22日电专访:“每一次合作都能感受到中国蕴藏的无限可能”——访施耐德电气...
内蒙古红十字人道救助项目如何申... 转自:草原云记者从内蒙古自治区红十字会了解到,由内蒙古自治区红十字会牵头开展的多项人道救助项目正在实...
穗恒运A涨2.11%,成交额3... 4月22日,穗恒运A盘中上涨2.11%,截至14:26,报6.30元/股,成交3945.10万元,换...
炬芯科技跌2.00%,成交额2... 4月22日,炬芯科技盘中下跌2.00%,截至13:59,报50.96元/股,成交2.36亿元,换手率...
“卤鸭店老板拒售变质鸭躲过天花... 据@抖音黑板报 消息,4月17日,“卤鸭店老板拒售变质鸭躲过天花板坍塌”事件经转载传播走红的同时,有...
大学本科专业,有新变化! 转自:中国能源报2024年度全国高校新增专业点1839个。4月22日从教育部获悉,日前,教育部公布2...
三星专利曝光一款垂直伸缩设计的... IT之家 4 月 22 日消息,三星在美国提交的一项专利展示了一款采用垂直伸缩设计的卷轴屏手机,该专...
云南玉溪:千余名医务人员下沉 ... 转自:新华财经日前从玉溪市卫生健康委员会获悉,2024年,玉溪市在提高区域内医疗质量、提升基层医院综...