Java网络编程:Socket 通信
2021-04-10 02:29
标签:输出流 网络编程 sock etc 管道 png services try pac URL:协议+IP+端口+资源位置 客户端: 服务器: 客户端:代码实现 服务器:代码实现 运行结果: Java网络编程:Socket 通信 标签:输出流 网络编程 sock etc 管道 png services try pac 原文地址:https://www.cnblogs.com/gtnotgod/p/13369547.htmlclient----发送数据(输出流)------------(输入)-【管道流处理数据】-(输出)------接收数据(输入流)------server
InetAddress 获取本地IP:写入服务器的端口号:xxxx
创建一个Socket连接(丢入IP和端口)
发送消息IO流(socket.getOutputStream();)
服务端的建立一个端口:ServerSocket
监听客户端发过来的信息:serverSocket.accept();
读取客户端的信息(信息对于服务器管道是写入-就是输入流):accept.getInputStream();
管道流获取数据处理
1 package Demo1.JavaSe.javasocket;
2
3 import java.io.IOException;
4 import java.io.OutputStream;
5 import java.net.InetAddress;
6 import java.net.Socket;
7 import java.net.UnknownHostException;
8
9 //Socket编程客户端
10 public class JavaSocketClientG {
11 public static void main(String[] args) throws IOException {
12 Socket socket = null;
13 InetAddress ServerIP=null;
14 OutputStream outputStream=null;
15 try {
16 //1.要知道服务器端口号
17 ServerIP = InetAddress.getByName("127.0.0.1");
18 //端口号
19 int port = 9999;
20 //2.创建一个Socket连接
21 socket = new Socket(ServerIP, port);
22 //3.发送消息IO流
23 //client----发送数据(输出流)------------(输入)-【管道流处理数据】-(输出)------接收数据(输入流)------server
24 outputStream = socket.getOutputStream();
25 outputStream.write("你好,我发送信息过来了!!!".getBytes());
26
27
28 } catch (UnknownHostException e) {
29 e.printStackTrace();
30 } catch (IOException e) {
31 e.printStackTrace();
32 }finally {
33
34 if (outputStream != null) {
35 outputStream.close();
36 }
37 if (socket != null) {
38 socket.close();
39 }
40 }
41
42
43 }
44 }
package Demo1.JavaSe.javasocket;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
//Socket编程服务端
public class JavaServiceSocketG {
//Ctrl+Alt+L 格式化代码
public static void main(String[] args) {
//alt +enter 补全/提示
// Ctrl+Alt+O 优化导入的类和包
//ctrl+alt+t 选中,自动选择try-catch
ServerSocket serverSocket=null;
Socket accept=null;
InputStream inputStream=null;
ByteArrayOutputStream byteArrayOutputStream=null;
try {
//client----发送数据(输出流)------------(输入)-【管道流处理数据】-(输出)------接收数据(输入流)------server
//1.服务端的有一个端口
serverSocket= new ServerSocket(9999);
//2.监听客户端发过来的信息
accept= serverSocket.accept();
//3.读取客户端的信息(信息对于服务器管道是写入-就是输入流)
inputStream= accept.getInputStream();
//4.管道流获取数据处理
byteArrayOutputStream= new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len;
while ((len= inputStream.read(buffer))!=-1){
byteArrayOutputStream.write(buffer,0,len);
}
System.out.println(byteArrayOutputStream.toString());
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
if(serverSocket!=null){
serverSocket.close();
}
if (accept!=null){
accept.close();
}
if (inputStream!=null){
inputStream.close();
}
if (byteArrayOutputStream!=null){
byteArrayOutputStream.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}