初次试验最简单的socket编程

author author     2022-08-25     114

关键词:

因为电脑限制同时为了操作方便,所以在本地的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输入的时候,此时如果不按一下回车键,代码不会往后走,所以也

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

一个新手java编程的初次感受

 作为一个已经学过Python和C的高级汇编语言的大二学生来说,学习Java是比较有挑战的。 首先,Java的这本书,其厚度是Python和C的总和(暂且不谈它的内容和它是否会是一种最优秀的程序设计语言),对于初学者来说,这... 查看详情

简单的socket介绍(代码片段)

在这之前我们先了解一下一些关于网络编程的概念  网络编程从大方面说就是对信息的发送和接收,中间传输为物理线路的作用,编程人员可以不用考虑  网络编程最主要的工作就是在发送端吧信息通过规定好的协议进行组装... 查看详情

qt学习之socket通信(世界上最简单的例子了)

...,网上关于这部分的资料都太过复杂,现在总结一下一些简单的应用。有机会可以给大家讲讲用Socket传送文件的代码。这里主要讲解如何实现TCP和UDP的简单通信。socket简介在LINUX下进行网络编程,我们可以使用LINUX提供的统一的... 查看详情

socket编程头文件分析

...关的头文件中,使用时直接include相关头文件即可。下面简单描述下相关的一些结构及头文件。1.sockaddr /bits/socket.hsocket编程最基本的就是socket地址,其定义在bits/socket.h中。但sys/socket.h包含bits/socket.h,且bits/socket.h明确指 查看详情

socket编程的简单实现

关于socket编程的简单实现,主要分成客户端、服务端两个部分。实现如下:1.服务端代码如下,注意:server端要优先于client端启动2.client端代码,以及启动后客户端和服务端之间的简单连接 (自学使用) 查看详情

这可能是最容易入门的socket教程了(代码片段)

...程师需要具备的核心技能之一。因此,该博客力求提供最简单、通俗的描述方式,来描绘网络编程中常见的知识点,同时附带代码示例,后期会加上具体的抓包分析,实际项目、框架案例,希望可以和大家共同探索网络世界。什... 查看详情

linuxsocket编程示例(最简单的tcp和udp两个例子)

一、socket编程  网络功能是Uinux/Linux的一个重要特点,有着悠久的历史,因此有一个非常固定的编程套路。  基于TCP的网络编程:    基于连接,在交互过程中,服务器和客户端要保持连接,不能断开。重发一切出错数据、... 查看详情

基于java的socket简单聊天编程

socket编程:一:什么是socket:socket是BSDUNIX的通信机制,通常称为“套接字”,其英文原意是“孔”或“插座”。有些顾名思义,socket正如其英文原意一样,像是一个多孔插座,可以提供多个端口的连接服务。... 查看详情

socket网络编程(代码片段)

...et编程-udpUDP---UserDataProtocol用户数据报协议,是?个?连接的简单的?向数据报的传输层协议。UDP不提供可靠性,它只是把应?程序传给IP层的数据报发送出去,但是并不能保证它们能到达?的地。由于UDP在传输数据报前不?在客户和服务... 查看详情

简单socket()编程

客户端:1、socket(intaf,inttype,intprotocol)socket()函数用于根据指定的地址族、数据类型和协议来分配一个套接口的描述字及其所用的资源。如果协议protocol未指定(等于0),则使用缺省的连接方式。 对于使用一给定地址族的某一特... 查看详情

一个最简单的socket通信例子

  所谓socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄。应用程序通常通过"套接字"向网络发出请求或者应答网络请求。   Socket和ServerSocket类库位于java.net包中。ServerSocket用于服务器端,Socket是建... 查看详情

socket编程,简单多线程服务端测试程序

socket编程,简单多线程服务端测试程序   前些天重温了MSDN关于socket编程的WSAStartup、WSACleanup、socket、closesocket、bind、listen、accept、recv、send等函数的介绍,今天写了一个CUI界面的测试程序(依赖MFC)作为补充。程序功能简... 查看详情

socket编程——一个简单的例子(代码片段)

  网络中进程之间如何通信什么是Socketsocket一词的起源socket的基本操作31socket函数32bind函数网络字节序与主机字节序33listenconnect函数34accept函数35readwrite等函数36close函数socket中TCP的三次握手建立连接详解socket中TCP的四次握... 查看详情

mycat初次简单配置分库分表

先规划下数据库的基础架构,先来个最简单基础的。三台虚机,各安装了mysql5.7用mycat建立逻辑数据库,建立5个表格,其中一个表格分库,一个表格做全局表,剩余三个表格每个虚机的数据库各放一个。统计信息:三个虚机的IP... 查看详情

最简单的一个socket服务端(代码片段)

描述:这是一个socket服务端,可以用串口调试工具连接和发送数据过来packagecom.thinkgem.wlw.modules.lhjh.socket.tstandard;importjava.io.BufferedInputStream;importjava.io.DataInputStream;importjava.io.IOException;importjava.net.Server 查看详情

tcp编程,socket通讯

...程,还有一种是UDP编程(点击打开链接)。而本文先讲述简单的TCP编程,Socket套接字连接通讯,实现简单的client与server之间的信息传输。以下是client与server之间简单的传输数据(单对单):注意:服务端先启动。然后再启动client... 查看详情

java中socket实现最简单的客户端与服务端通信

Java中Socket实现最简单的客户端与服务端通信引言:因为最近项目中要接入某通信协议接口,基于TCP/IP的socket接口。于是就在本地弄一个最简单的Socket通信仅供学习。话不多说,直接开摆客户端代码packagetest;importjava.io.*;importjava.ne... 查看详情

基于java的简单socket编程

1TCP协议与UDP协议     1.1TCP             TCP是(TranferControlProtocol)的简称,是一种面向连接的保证可靠传输的协议。通过TCP协议传输,得到的是一个顺序的无差错的... 查看详情