初次试验最简单的socket编程

因为电脑限制同时为了操作方便,所以在本地的2个不同的工作空间的不同工程下测试:

workspace-1:

服务器端代码 ServerSocketTest.java

 1 package socket;
 2
 3 import java.io.BufferedReader;
 4 import java.io.InputStream;
 5 import java.io.InputStreamReader;
 6 import java.io.OutputStream;
 7 import java.io.PrintWriter;
 8 import java.net.ServerSocket;
 9 import java.net.Socket;
10 import java.util.Scanner;
11
12 public class ServerSocketTest {
13
14     public static void main(String[] args) {
15         try {
16             while(true){
17                 ServerSocket serverSocket = new ServerSocket(10086);
18                 Socket socket = serverSocket.accept();
19                 InputStream inputStream = socket.getInputStream();
20                 InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "UTF-8");
21                 BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
22                 String data = null;
23                 while((data = bufferedReader.readLine()) != null){
24                     System.out.println("客户端发来消息说:"+data);
25                 }
26                 socket.shutdownInput();
27
28                 OutputStream outputStream = socket.getOutputStream();
29                 PrintWriter printWriter = new PrintWriter(outputStream);
30                 Scanner in = new Scanner(System.in);
31                 printWriter.write(in.nextLine());
32                 printWriter.flush();
33                 printWriter.close();
34                 outputStream.close();
35
36                 bufferedReader.close();
37                 inputStreamReader.close();
38                 inputStream.close();
39                 socket.close();
40                 serverSocket.close();
41             }
42         } catch (Exception e) {
43             e.printStackTrace();
44         }
45     }
46 }

workspace-2:

客户端代码 SocketTest.java

 1 package socket;
 2
 3 import java.io.BufferedReader;
 4 import java.io.InputStream;
 5 import java.io.InputStreamReader;
 6 import java.io.OutputStream;
 7 import java.io.PrintWriter;
 8 import java.net.Socket;
 9 import java.util.Scanner;
10
11 public class SocketTest {
12
13     public static void main(String[] args) {
14         try {
15             while(true){
16                 Socket socket = new Socket("127.0.0.1", 10086);
17                 OutputStream outputStream = socket.getOutputStream();
18                 PrintWriter printWriter = new PrintWriter(outputStream);
19                 Scanner in = new Scanner(System.in);
20                 printWriter.write(in.nextLine());
21                 printWriter.flush();
22                 socket.shutdownOutput();
23
24                 InputStream inputStream = socket.getInputStream();
25                 InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "UTF-8");
26                 BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
27                 String data = null;
28                 while((data = bufferedReader.readLine()) != null){
29                     System.out.println("服务器说:"+data);
30                 }
31
32                 bufferedReader.close();
33                 inputStreamReader.close();
34                 inputStream.close();
35                 printWriter.close();
36                 outputStream.close();
37                 socket.close();
38             }
39         } catch (Exception e) {
40             e.printStackTrace();
41         }
42
43     }
44 }

服务器端控制台输入与显示:

客户端控制台输入与显示:

1、目前还没有查阅资料,不知道如何实现多次实时输入传输,本文中只是使用最外层的while循环来暂时实现实时输入传输,不断在new流与关闭流,这种方法效率应该很低。

2、文中只是测试了本地127.0.0.1传输信息可以实现,没有测试不同IP地址的信息传输

3、在一方控制台输入要发送的信息回车后,在另一方要先按回车键,才会显示出接受到的信息,因为当断点走到Scanner输入的时候,此时如果不按一下回车键,代码不会往后走,所以也

  不会获取输入流,无法显示接收的信息。

时间: 2024-10-10 07:08:17

初次试验最简单的socket编程的相关文章

linux网络编程1 最简单的socket编程

下面是socket编程的服务器端 先看一个图,1 1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<string.h> 4 #include<unistd.h> //针对系统调用的封装 fork,pipe 各种i/o原语 read write 等 5 6 #include<sys/socket.h> 7 #include<netinet/in.h> //互联网地址族 定义数据结构s

【Python3】简单的socket编程demo

分为客户端,和服务端 # 服务端程序 import socket if __name__ == '__main__': # 1.创建socket(套接字)对象 serv = socket.socket() # 2.绑定地址信息 host = socket.gethostname() port = 12345 serv.bind((host, port)) # 3.开启监听 serv.listen(5) # 最大的等待序列数,可以等待5个,第6个就被拒绝了,一般默认是5 print("监听已开启,

Linux Socket编程-(转自吴秦(Tyler))

"一切皆Socket!" 话虽些许夸张,但是事实也是,现在的网络编程几乎都是用的socket. --有感于实际编程和开源项目研究. 我们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天打开浏览器浏览网页时,浏览器的进程怎么与web服务器通信的?当你用QQ聊天时,QQ进程怎么与服务器或你好友所在的QQ进程通信?这些都得靠socket?那什么是socket?socket的类型有哪些?还有socket的基本函数,这些都是本文想介绍的.本文的主要内容如下: 1.网络中进程之间如何通信?

Linux Socket编程(不限Linux)

话虽些许夸张,但是事实也是,现在的网络编程几乎都是用的socket. ——有感于实际编程和开源项目研究. 我们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天打开浏览器浏览网页时,浏览器的进程怎么与web服务器通信的?当你用QQ聊天时,QQ进程怎么与服务器或你好友所在的QQ进程通信?这些都得靠socket?那什么是socket?socket的类型有哪些?还有socket的基本函数,这些都是本文想介绍的.本文的主要内容如下: 1.网络中进程之间如何通信? 2.Socket是什么? 3.so

Python下的socket编程

首先需要说明的一点是:这里并不会记录很深奥的socket编程,只是会分析一个最简单的socket编程聊天室下的几种特殊异常情况的处理,代码如下: 服务端: 1 import socket 2 3 HOST = "" 4 PORT = 8870 5 sk = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 6 sk.bind((HOST, PORT)) 7 sk.listen(5) 8 while True: 9 print("

SOCKet 编程 简介

“一切皆Socket!” 话虽些许夸张,但是事实也是,现在的网络编程几乎都是用的socket. ——有感于实际编程和开源项目研究. 我们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天打开浏览器浏览网页时,浏览器的进程怎么与web服务器通信的?当你用QQ聊天时,QQ进程怎么与服务器或你好友所在的QQ进程通信?这些都得靠socket?那什么是socket?socket的类型有哪些?还有socket的基本函数,这些都是本文想介绍的.本文的主要内容如下: 1.网络中进程之间如何通信? 2.So

转 网络编程学习笔记一:Socket编程

网络编程学习笔记一:Socket编程 “一切皆Socket!” 话虽些许夸张,但是事实也是,现在的网络编程几乎都是用的socket. ——有感于实际编程和开源项目研究. 我们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天打开浏览器浏览网页时,浏览器的进程怎么与web服务器通信的?当你用QQ聊天时,QQ进程怎么与服务器或你好友所在的QQ进程通信?这些都得靠socket?那什么是socket?socket的类型有哪些?还有socket的基本函数,这些都是本文想介绍的.本文的主要内容如下:

网络编程学习笔记一:Socket编程

“一切皆Socket!” 话虽些许夸张,但是事实也是,现在的网络编程几乎都是用的socket. ——有感于实际编程和开源项目研究. 我们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天打开浏览器浏览网页时,浏览器的进程怎么与web服务器通信的?当你用QQ聊天时,QQ进程怎么与服务器或你好友所在的QQ进程通信?这些都得靠socket?那什么是socket?socket的类型有哪些?还有socket的基本函数,这些都是本文想介绍的.本文的主要内容如下: 1.网络中进程之间如何通信? 2.So

Socket详解-Linux Socket编程(不限Linux)

"一切皆Socket!" 话虽些许夸张,但是事实也是,现在的网络编程几乎都是用的socket. --有感于实际编程和开源项目研究. 我们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天打开浏览器浏览网页时,浏览器的进程怎么与web服务器通信的?当你用QQ聊天时,QQ进程怎么与服务器或你好友所在的QQ进程通信?这些都得靠socket?那什么是socket?socket的类型有哪些?还有socket的基本函数,这些都是本文想介绍的.本文的主要内容如下: 1.网络中进程之间如何通信?