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();}}
}

相关内容

热门资讯

【真救命】毒蛇咬伤急救指南 近期,随着气温逐渐升高,蛇类活动日益频繁,各地蛇咬伤事件进入高发期,引起公众广泛关注。蛇咬伤不仅会给...
泽连斯基:基辅遭遇了最恐怖的攻...   乌克兰总统弗拉基米尔· 泽连斯基表示,俄罗斯发射了超过440架无人机和32枚导弹袭击乌克兰,首都...
新任副省长,分工明确! 转自:上观新闻据海南省人民政府官网消息,海南省人民政府办公厅近日发布了关于调整省政府领导分工的通知,...
著名音乐人陈彼得去世,他的歌你... 6月17日上午,著名音乐人陈彼得的家人发布讣告称,陈彼得先生,于2025年6月14日上午9时46分在...
六也居庐房主还在吗 六也居庐房主还在吗**六也居庐房主谭华强已经去世**。
郭书瑶有什么好听的歌?拜托各位... 郭书瑶有什么好听的歌?拜托各位了 3QHoney不错,有点i me 的哎咿呀的味道…… 幸福不远,是...
江西省安远县市场监管局欣山分局... 中国质量新闻网讯 为进一步筑牢校园食品安全防线,6月14日,江西省安远县市场监督管理局欣山分局聚焦校...
刚刚,地质灾害黄色预警!涉及甘... 联合发布地质灾害气象风险预警甘肃省自然资源厅、甘肃省气象局于2025年06月17日14时00分联合发...
金沃股份控股股东及实控人续签一... 金沃股份(300984)发布公告,控股股东和实际控制人于2025年6月17日续签了一致行动协议。此次...
天津电信新增副总经理张太宇 ... 运营商财经网 朱欣雨/文据知情人士透露,天津电信领导班子再度调整,新添加了副总经理张太宇。他此番是从...
伊朗发布识别通敌者指南:这些人... 【文/观察者网 张菁娟】以色列从伊朗内部发起的攻击,加剧了后者对以色列情报机构“摩萨德”渗透程度的担...
推动教育资源扩优提质,接下来怎... 本报讯(记者 朱英杰)针对各级政协委员们关心关注的教育资源扩优提质问题,日前,中共中央办公厅、国务院...
永泰能源海则滩煤矿:落实生态环... 朔方雄关,古道绵延。在陕北高原,永泰能源(600157.SH)旗下陕西亿华海则滩煤矿正在建设现代化的...
206家公司和机构获颁科创金牛... 本报讯(记者 解敏)2025科创金牛奖颁奖典礼日前在普陀区举行,206家公司和机构荣膺该奖项。 ...
安康市汉滨区司法局召开行政决策... 为进一步提升依法行政水平,强化行政决策的合法性、科学化与民主性,近日,安康市汉滨区司法局召开行政决策...
母女又一次闹僵了   ▌顾艳 著  此时的大卫瘦得吓人,和从前判若两人。米娅内心一阵怜悯,牵着他的手,往花园中心红砖铺...
北方长龙(301357.SZ)... 格隆汇6月17日丨北方长龙(301357.SZ)在互动平台表示,公司专注于军事装备领域,主要从事以非...
“拉布布”火出圈 南昌“一娃难... 近日,泡泡玛特旗下玩偶LABUBU(拉布布)火爆全球,掀起抢购热潮。其独特造型吸引了众多年轻人,成为...
今晚8点,京东618开启“最后... 转自:扬子晚报6月17日晚8点,2025京东618即将迈入“最后28小时”,这也意味着今年京东618...
注意!黄石这一路段将围挡封闭施... 转自:黄石发布注意!因施工需要6月18日—6月27日将对立华巷(裕华城北大门至湖滨大道路段)采取交通...