前言
网络编程是比较难的一部分,对于小浪而言也不是很容易,我之前写了一篇关于网络编程的文章,轻轻敲开TCP的大门,在看完之后,我决心写一篇关于网络编程的文章,开肝!
初次建立联系
首先明确,服务器端需要用到ServerSocet,客户端用到的Socet.
搭建服务器端
ServerSocket server = new ServerSocket(10242);
搭建客户端
Socket socket = new Socket("127.0.0.1",10242);
等待客户端响应
Socket socket = server.accept();
当客户端做出响应后,服务器端就会👇执行!

两者建立通信关系
使用流来进行两者的交互,一个发一个接.
package work.february.seven;
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
/**
* @Author: 小浪
* @Description:
* @Date Created in 2021-02-07 16:52
* @Modified By:
*/
public class Demo6 {
/**
* 服务器端
* @param args
*/
public static void main(String[] args) throws IOException {
ServerSocket server = new ServerSocket(10242);
System.out.println("客户端正在等待连接!");
//等待客户端连接
Socket socket = server.accept();
System.out.println("一个客户端成功连接.");
//向客户端输出 "欢迎连接到服务器"
OutputStream outputStream =socket.getOutputStream();
PrintStream ps =new PrintStream(outputStream);
ps.println("欢迎连接到服务器");
InputStream is = socket.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String text = br.readLine();
System.out.println("客户端回复:"+text);
System.out.println("运行结束");
}
}
package work.february.seven;
import java.io.*;
import java.net.Socket;
/**
* @Author: 小浪
* @Description:
* @Date Created in 2021-02-07 16:53
* @Modified By:
*/
public class ClientDemo {
public static void main(String[] args) throws IOException {
Socket socket = new Socket("127.0.0.1",10242);
InputStream is = socket.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String text = br.readLine();
System.out.println("客户端接收到消息:"+text);
OutputStream outputStream =socket.getOutputStream();
PrintStream ps =new PrintStream(outputStream);
ps.println("你好");
}
}

在服务中加入多线程
一个服务器对应一个客户端,难免有点奢侈.
服务器端:
package work.february.seven;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
/**
* @Author: 小浪
* @Description:
* @Date Created in 2021-02-07 17:41
* @Modified By:
*/
public class Demo7 {
public static void main(String[] args) throws IOException {
ServerSocket server = new ServerSocket(10242);
System.out.println("客户端正在等待连接!");
while(true){
Socket socket = server.accept();
new Thread(){
@Override
public void run() {
try {
InputStream inputStream =socket.getInputStream();
OutputStream outputStream =socket.getOutputStream();
} catch (IOException e) {
e.printStackTrace();
}
}
}.start();
System.out.println("一个客户端连上了");
}
}
}
客户端:
package work.february.seven;
import java.io.IOException;
import java.net.Socket;
/**
* @Author: 小浪
* @Description:
* @Date Created in 2021-02-07 17:42
* @Modified By:
*/
public class Demo8 {
public static void main(String[] args) throws IOException {
Socket socket = new Socket("127.0.0.1",10242);
}
}
效果如下图:

感谢大家不吝赐教,一起来交流学习吧!
本文介绍了Java网络编程的基本概念,包括服务器端使用ServerSocket和客户端使用Socket进行通信。通过实例展示了如何建立连接、交换数据,并引入多线程以处理多个客户端连接。最后,文章探讨了在服务器端实现多线程以提高并发性能的方法。

3201

被折叠的 条评论
为什么被折叠?



