Socket
程序员文章站
2022-07-11 08:29:03
...
Socket(套接字)
是网络应用程序编程的接口和一种机制
网络连接当然是为了通讯,自然是需要服务端,客户端通过访问服务端达成通讯
基于TCP的Socket编程 原理大概就是一张图
服务端代码
public class MyServer {
// 服务器
public static void main(String[] args) {
ServerSocket sc = null;
Socket a = null;
try {
//设端口号
sc = new ServerSocket(25678);
//等待客户端连接
a = sc.accept();
// 客户端连接成功
System.out.println("success");
// 给客户端发信息
try (PrintWriter pw = new PrintWriter(new OutputStreamWriter(a.getOutputStream()),true);
BufferedReader br = new BufferedReader(new InputStreamReader(a.getInputStream()));) {
while (true) {
//扫描类用来在控制台输入信息
Scanner cs = new Scanner(System.in);
String content = cs.nextLine();
pw.println("server:" + content);
// 接受客户端信息,并打印
String mess = br.readLine();
System.out.println(mess);
}
} catch (Exception e) {
e.printStackTrace();
}
// a.getOutputStream();
} catch (IOException e) {
e.printStackTrace();
}
}
}
客户端代码
public class MyClient {
//客户端
public static void main(String[] args) {
//创建一个套接字
Socket ss = null;
try {
// 连接服务端
ss = new Socket("127.0.0.1", 25678);
// 接受服务端信息,并打印
try (PrintWriter pw = new PrintWriter(new OutputStreamWriter(ss.getOutputStream()),true);
BufferedReader br = new BufferedReader(new InputStreamReader(ss.getInputStream()));) {
while (true) {
String mess = br.readLine();
System.out.println(mess);
// 给服务端发信息
Scanner sc = new Scanner(System.in);
String content = sc.nextLine();
pw.println("client:" + content);
}
} catch (Exception e) {
e.printStackTrace();
}
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
上一篇: socket
下一篇: socket编程——TCP
推荐阅读
-
apache下PHP无法打开其他socket (permission denied)问题解决
-
c#socket TCP同步网络通信
-
C#上位机之—WinForm实现Socket异步通讯示例
-
PHP中使用socket方式GET、POST数据实例教程
-
4.智能快递柜(通信篇-SOCKET)
-
Java 实例 - 使用 Socket 连接到指定主机
-
看了好多招聘。比如如下的腾讯的招聘,大神请问为什么PHP还要用到socket?
-
php socket 处理不过来数据流,该如何避免(好像是阻塞了)
-
php socket_create调用有关问题
-
PHP中使用socket方式GET、POST数据实例_php实例