首页 > 其他分享 >6-TCP-2022-12-17

6-TCP-2022-12-17

时间:2022-12-17 21:57:30浏览次数:48  
标签:12 java socket 17 IOException 2022 import new null

编写两个类 

客户端

1、连接服务器

2、发送消息

package Lesson01;

import java.io.IOException;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;

public class TcpClientDemo01 {
public static void main(String[] args) {
Socket socket = null;
OutputStream os = null;
//1.要知道服务器的地址
try {
//1.要知道服务器的地址、端口号
InetAddress serverIP = InetAddress.getByName("127.0.0.1");
int port = 9999;
//2.创建一个SOCKET连接
socket = new Socket(serverIP,port);
//3.发送消息 I/O流
os = socket.getOutputStream();
os.write("你好,我是新的世界".getBytes());

} catch (Exception e) {
throw new RuntimeException(e);
}finally {

if (os != null) {
try {
os.close();
} catch (IOException e) {
throw new RuntimeException(e);
}
}

if (socket != null) {
try {
socket.close();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}

}
}

服务器

1、建立服务端口 ServerSocket

2、等待用户的连接 accept

3、接收用户的消息

package Lesson01;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class TcpServerDemo01 {
public static void main(String[] args) {
ServerSocket serverSocket = null;
Socket socket = null;
InputStream is = null;
ByteArrayOutputStream baos = null;

try {
//1.我得有一个地址
serverSocket = new ServerSocket(9999);
while (true) {
//2.等待客户端连接
socket = serverSocket.accept();
//3.读取客户端的消息
is = socket.getInputStream();

//管道流
baos = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len;
while ((len = is.read(buffer)) != -1) {
baos.write(buffer, 0, len);
}
System.out.println(baos.toString());
}



} catch (IOException e) {
throw new RuntimeException(e);
}finally {
//关闭资源
if (baos != null) {
try {
baos.close();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
if (is != null) {
try {
is.close();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
if (socket != null) {
try {
socket.close();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
if (serverSocket!=null){
try {
serverSocket.close();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}

}
}

标签:12,java,socket,17,IOException,2022,import,new,null
From: https://www.cnblogs.com/RUI2022/p/16989599.html

相关文章

  • 12.17 闲话
    当时好像就排在我后面,我还听到他们聊天。为啥我碰不上妹子和我一起撑伞,自闭了。/ll但是期末复习不完了,怎么办???物理依托答辩,怎么办???化学依托答辩,怎么办???语文依托答辩,怎么办......
  • 解决matlab2022b下simulink无法启动的问题
    1、提示错误如下:matlab.internal.cef.webwindowMATLABWindow应用程序未能启动。UnabletolaunchtheMATLABWindowapplication.Theexitcodewas:12、还是老......
  • 网络编程 -5-通讯协议-2022-12-17
    大事化小-分层  TCP/IP协议簇,实际上是一组协议    重要    1、TCP 用户传输协议    2、UDP用户数据包协议   出名的协议   ......
  • 闲话 22.12.17
    闲话好那杜教筛的内容到这里就告一段落了。如果有想学习而且不嫌我写的垃圾的同学可以经下方链接阅读。前传上篇下篇杜教筛写到这突然发现之前浅学了一点贝尔级数。......
  • S7-1200作为的IO控制器和智能IO设备的应用
    PLC_1是IO控制器,  PLC_2是智能io设备; 情况1:S7-1200智能设备在相同项目下组态;只需要设置智能IO设备即可;        情况2:S7-1200智能设备在......
  • 2022.12.17-代码大全-12月读后感2
    近期,我阅读了这本书的前期准备的重要性这一部分。使用高质量的实践方法是那些能创造高质量软件的程序员的共性。这些高质量的实践方法在项目的初期、中期、末期都强调质量......
  • 【RPA产品解析】弘玑2022发布会产品亮点
    一、产品解析2022年11月,弘玑公司进行了超级自动化系列产品发布会。编者发现“智能助手CIRI”是其中的最大亮点,有别于其他主流厂商的人机交互能力,甚至优于国际头部RPA厂......
  • [OpenCV实战]12 使用深度学习和OpenCV进行手部关键点检测
    目录​​1背景​​​​2实现​​​​3.结果和代码​​​​4参考​​手部关键点检测是在手指上找到关节以及在给定图像中找到指尖的过程。它类似于在脸部(面部关键点检测)......
  • 1764. 通过连接另一个数组的子数组得到一个数组
    1764.通过连接另一个数组的子数组得到一个数组题解:数据范围小,直接暴力双指针publicbooleancanChoose(int[][]groups,int[]nums){intn=groups.le......
  • 2022年年终总结
    主要分成四大块来进行总结做了啥?没做啥?感受?明年想做啥?做了啥【按时间线】?1、跟随公司发布了新版本的软件2、跳槽涨薪3、参加了钢琴比赛4、0到1实现新项目......