java:网络编程(一/基于Socket的单客户端连接)

用Java实现基于Socket的网络编程 使用Java语言,采用TCP协议,实现一对一、一对多的通信(无用户界面) 阅读详情


java中网络相关类











以下为最基础的服务器与单个客户的编程demo:

服务端

package demo_Socket;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;

public class Server {
	public static void main(String[] args) {
		try {
			// 1,创建一个服务器端socket,即serverSocket,指定绑定的端口,并监听
			ServerSocket serversocket = new ServerSocket(9985);
			// 2,使用accept()方法监听,等待客户端链接
			System.out.println("服务器正在启动,等待客户端连接..");
			Socket socket = serversocket.accept();
			// 3,获取输入流,读取客户端信息
			InputStream is = socket.getInputStream();// 字节输入流
			// 将字节流转换为字符流
			InputStreamReader isr = new InputStreamReader(is);
			// 以缓冲的方式读取
			BufferedReader br = new BufferedReader(isr);

			String info = null;
			while ((info = br.readLine()) != null) {
				System.out.println("我是服务器,客户端说: " + info);
			}
			socket.shutdownInput();
			OutputStream os=socket.getOutputStream();
			PrintWriter pw=new PrintWriter(os);
			pw.write("欢迎使用");
			pw.flush();
			
			//5,关闭资源
			pw.close();
			os.close();
			br.close();
			isr.close();
			is.close();
			socket.close();
			serversocket.close();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

客户端:

package demo_Socket;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.Socket;

public class Client {

	public static void main(String[] args) {
		// 1.创建客户端Socket,指定服务器地址和端口
		try {
			//2.获取输出流,向服务器端发送信息
			
			Socket socket = new Socket("localhost", 9985);
			OutputStream os = socket.getOutputStream();
			PrintWriter pw = new PrintWriter(os);
			pw.write("用户名:admin;密码:123");
			pw.flush();
			socket.shutdownOutput();
			//3.打开输入流,读取服务端的响应信息
			InputStream is=socket.getInputStream();
			//包装成缓冲
			BufferedReader br=new BufferedReader(
					new InputStreamReader(is));
			String info = null;
			while ((info = br.readLine()) != null) {
				System.out.println("我是客户端,服务器说: " + info);
			}
			//4.关闭各种资源
			br.close();
			is.close();
			pw.close();
			os.close();
			socket.close();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

}


当关闭输出流时,与输出流相关连的socket也会被关闭












小白实战Socket网络编程一:使用Socket进行TCP连接 **小白实战Socket网络编程一:使用Socket进行TCP连接 ***前言-本系列的Socket网络编程,旨在于记录从简单的Socket 实现TCP连接开始逐步到最终完成大文件消息分片模型发送的整个过程,其中整理主要包括以下8个实战记录主题: Socket实现TCP连接 UDP局域网搜索连接 UDP辅助TCP实现点对点传输实例 简单的聊天室实战案例 NIO优化服务端线程模型 数据传输的稳定性优化 客户端发送文件到服务器实战 分片消息模型实现大文件传输实战 ... 阅读详情

相关推荐

Java网络编程:介绍Java提供的网络编程接口,如Socket,ServerSocket,URL等,并通过实例说明它们的用法。

一、Java网络编程简介 网络编程的重要性 Java网络编程的优点 网络编程中的基本概念和术语介绍(如IP地址、端口号、协议等) 二、Java网络编程核心组件 Socket Socket的定义和作用 创建Socket对象 使用Socket进行通信 Socket类的主要方法与属性 Socket的实例演示 ServerSocket ServerSocket的定义和作用 创建ServerSocket对象 使用ServerSocket接收客户端连接 ServerSocket类的主要方法和属性 ServerSocke

哎 你看的博客 1205

Java简单实现单链

需要两个类 一个是node节点类 需要保存数据和下一个节点指向,代码如下 public class Node { Object data; Node next; public Node() { this.data = null; this.next = null; } public Node(Object data) { this.data = data; } public Node bu

good for 的博客 309

Java 网络编程 ①-TCP || UDP || Socket

在实际的网络通信过程中,需要经过需要节点或路由,那么所发送的数据不可能百分百到达对方,在传输途中,数据可能会因为某些不可抗力因素导致比特翻转(就是1变成0,0变成1),从而导致解析出的数据出现错误,也有可能整个数据在传输的过程丢失,也就是我们常说的 "丢包";:连接通常指的不是物理上的连接,而是逻辑上的连接,并不是两个事物通过链条连接在一起,而是通过某种抽象的东西将这两个事物所连接起来,使其有关系;文件要关闭,就必须考虑清楚这个文件对象的生命周期,此处的 socket 对象,伴随整个 UDP服务器;

Themberfue的博客 1145

java实现Socket单工长连接模式

package com.mofit.fs.trans.server; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.IOException; import java.net.InetSocketAddress; import java.net.ServerSo

wx5589506的专栏 2946

Java网络编程:Socket与InetAddress

Java的网络编程允许开发者创建能够在互联网上通信的应用程序。java.net包是Java网络功能的核心,包含了用于TCP/IP通信的Socket类和用于地址解析的类。这些类简化了底层网络操作,使开发者能够专注于应用程序逻辑。平台无关性:Java代码可在不同操作系统上运行,无需修改。易用性:API设计直观,即使是网络编程新手也能快速上手。健壮性:内置的异常处理机制(如)有助于管理网络错误。本文将重点介绍如何使用Socket连接服务器以及使用查找和报告网络地址。Socket。

静水深流 729

Java网络编程:TCP/UDP连接测试实践

简介:网络通信作为软件开发的关键领域,TCP和UDP是两种基础的网络协议。本文介绍了Java中TCP和UDP协议的特点,以及如何利用Java的Socket类实现TCP通信,和DatagramSocket类实现UDP通信。通过“SocketTest”项目的实际步骤,开发者可以深入理解两者的连接测试和数据交换过程,并通过源代码的学习与调试,掌握网络编程的核心概念和实际应用。

weixin_30661119的博客 811

java实现Socket通信(一)---单线程服务

前言 使用基于TCP 协议的双向通信时,网络中的两个应用程序之间必须首先建立一个连接,这两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。 建立网络通信连接至少要一对端口号(socket)。socket本质是编程接口(API),对TCP/IP的封装,TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口;HTTP是轿车,提供了

keep studying 4410

Java网络编程:实现Socket通信

Java通过Socket类提供了对TCP/IP协议的支持,从而实现网络编程。TCP/IP是一种面向连接的、可靠的流传输协议,保证了数据传输的顺序和准确性。当服务器端和客户端建立连接后,它们可以像操作文件流一样进行数据的读写操作。类是位于java.net包中的一个用于实现服务器端套接字的类。它能够监听指定端口的TCP连接请求,接受客户端的连接请求,并返回一个Socket对象进行数据的接收和发送。ServerSocket类是实现网络通信中服务端的核心组件,是所有网络服务端程序的基础。

weixin_35886636的博客 1057

【Java】UDP网络编程:无连接通信到Socket实战

【Java】UDP网络编程:无连接通信到Socket实战

一年,我很需要这一年 3336

HTML5调用Socket接口例子

HTML5,Socket接口,例子,HTML5.WebSocket,亲手调试,有图形介绍

java socket长连接客户端服务端(标准实例)

java socket长连接客户端服务端(标准实例),准确无误,流行结构。

Java网络编程:从Socket到HTTP通信

本文介绍了Java网络编程的核心内容,包括Socket编程和HTTP通信。Socket编程部分详细讲解了TCP/IP通信的实现方法,通过ServerSocket和Socket类实现客户端与服务器端的连接和数据传输。HTTP通信部分阐述了HTTP请求和响应的组成结构,以及常见的请求方法和状态码。最后,文章演示了如何使用Java的URL和URLConnection类发送HTTP请求。文中提供了完整的代码示例,包括服务器端和客户端的Socket通信实现,以及HTTP请求的发送方法。这些内容为开发者提供了Java网

今天比昨天更努力一点! 9768

Java远程控制源码 - Java网络编程源码

Java JDK1.6 的Robot对象,该对象可以完成屏幕图像截取操作,控制鼠标,键盘,如此便可以轻而易举地实现远程服务器的控制。本文向大家介绍如何用Java Robot对象实现远程服务器的控制,并给出了相应的Java源代码。 controlled.bat 启动被控端,不显示控制台,用任务管理器关闭 controlled_cmd.bat 启动被控端,显示控制台 JPcAnyWhereControlled.java main.bat 启动主控端,不显示控制台 main_cmd.bat 启动主控端,显示控制台 JPcAnyWhere.java

java实现socket网络编程

1、网络编程原理: 网络编程两大步骤 一、如何定位网络上的一台或者多台主机: 网络层主要负责网路主机的定位,数据传输传输的路由,由ip地址可以唯一的确定internet上的一台主机。 二、如何在定位之后进行数据的传输; 在传输层则提供面向应用的可靠(TCP)或者非可靠(UDP)的数据传输机制 对于客户端/服务器(C/S)结构。 即通信双方一方作为服务器等待客户提出请求并予以响应。 客户则在需要服务...

未的博客 4380

FAGLB03余额显示异常排查与修复指南

本文针对SAP新总账中FAGLB03报表余额显示异常问题,提供了专业的排查与修复指南。文章深入剖析了数据不一致的核心原因,如FAGLFLEXT汇总表与凭证明细不同步、年度余额结转(FAGLGVTR)失败等,并详细介绍了使用FAGLF03进行精准诊断、通过SE38执行标准调整程序TFC_ADJUST_VZ进行修复的标准操作流程,帮助用户快速恢复数据一致性,确保财务报表的准确性。

weixin_29313423的博客 307

(数字ic验证)从零开始的apb_watchdog验证模块搭建(一、功能介绍与环境搭建)

apb_watchdog验证模块搭建(一)文章目录 文章目录apb_watchdog验证模块搭建(一)文章目录前言一、apb_watchdog简单功能介绍二、测试平台环境搭建1.测试所用模板介绍2.tb与interface2.env与watchdog_pkg3.test与base_sequence4.Makefile总结——当前验证结构 前言 本文介绍了apb_watchdog验证模块的搭建过程与其具体代码,主要包括其中验证环境的构建,测试序列的发送与回归测试收集。主要运用systemvorilog与u

peop1e的博客 9739

Java网络编程之Socket---TCP(一)

Java网络编程之Socket---TCP(一)

weixin_48568302的博客 4311

共享单车需求预测问题:建模篇

机器学习训练营——机器学习爱好者的自由交流空间(qq群号:696721295) 在上一篇里,我们使用可视化的方法分析了“共享单车”的数据集,理解了特征(变量)之间的关系。我们将在本篇建立几个模型预测单车的需求量,并比较它们的预测效果。 随机森林填充法 首先,导入必需的库、训练集和检验集。 import pylab import calendar import numpy as np impor...

wong2016的博客 1万+

Java网络编程:socket与Netty

Socket 实现了TCP/IP协议,可以连接到网络上的上脑,并收发数据ServerSocket 用于服务端,可以监听服务端口,等待客户端连接,连接后可以生成用于传输数据的Socket创建服务端 创建客户端 客户端发送消息 服务端接收消息 也可以使用Netty很方便的实现socket编程 Netty介绍 简介 按照官方定义,它是一个异步的、基于事件 Client/Server 的网络框架,目标是提供一种简单、快速构建网络应用的方式,同时保证高吞吐量、低延时、高可靠性。 Netty 的

闫玉林的博客 7522

如何在SendWS实现WhatsApp批量群发设置管理?WhatsApp群发超链有什么好处?

WhatsApp群发顾名思义就是对WhatsApp上的用户好友进行群发消息,给他们群发想要发送的消息。及时不认识对方也可以对他进行群发超链。越来越多做跨境出海运营的工作者利用WhatsApp进行营销推广,因为他能做到低成本高回报,向客户发送消息曝光自己的品牌或产品,使得更多人了解,拓展新客户,提高成交率。

SendWS-WS云控群控拓客聊天翻译 1172

红外小目标检测新思路:当DETR遇上Mamba状态空间模型,速度提升3倍

本文探讨了将Mamba状态空间模型与DETR框架结合,用于解决红外小目标检测的难题。该创新方案通过线性复杂度的Mamba模块替代传统Transformer的自注意力机制,在保持高检测精度的同时,显著提升了推理速度,实现了实时性能的突破,为无人机巡检、安防监控等场景提供了高效解决方案。

hhh00的博客 666

java网络编程:8、基于TCP的socket编程(一)简单的socket通信_一个客户端

一、基于tcp的编程,就好像用电话进行交谈一样 二、在java中用于编程网络程序的类 三、套接字 + (输出、输入流) 1、服务器程序编写基本步骤: 2、客户端程序编写基本步骤: 四、代码编写 1、服务器端程序的编写 2、客户端程序的编写 3、打印输出 4、你这个sever和client都是在同一个程序当中编写的, 那么我如何在两台机器之间进行通信呢? 五、系列文章(java网络编程)

鲁迷那的专栏—坚持实践后再写出来! 3114

STM32/GD32以太网开发避坑指南:ZLG EPORTM模块调试实战(含YT8512H配置)

本文针对STM32/GD32平台使用ZLG EPORTM模块进行以太网开发时遇到的常见问题,提供了详细的调试实战指南。重点解析了从传统PHY驱动迁移到YT8512H芯片的核心步骤,包括软件复位延时、RMII时钟配置等关键陷阱,并分享了LWIP集成与稳定性验证的实用经验,帮助开发者高效避坑。

rice5的博客 1164

java socket长连接实现

java socket长连接的实现代码客户端代码合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 网络编程都是最底层都是基于socket的,鉴于客户端需要一直发送消息,使用短连接就不适合了,因为建立socket连接后发送完数据又马上断开连接。

weixin_43686413的博客 7889

英伟达DeepStream学习笔记7——DeepStream接入USB相机并实现广角摄像头的畸变矫正

deepstream官方提供了一个畸变矫正的例子,包含了鱼眼和普通广角的矫正。我目前准备做一个广角的畸变矫正,我已经使用opencv实现功能,目前增加到deepstream框架中。示例代码在\opt\nvidia\deepstream\deepstream-5.0\sources\apps\sample_apps\deepstream-dewarper-test 中,鱼眼矫正——deepstream官方版 https://developer.nvidia.com/blog/calibration-trans

耶律大石的博客 1603

主流反爬虫、反作弊防护与风控对抗手段

主流反爬虫、反作弊风控防护中的核心设计点与对抗策略

吴秋霖的博客 2556
上一篇: Python:tuple集合
下一篇: java:(二/基于socket的多客户端连接)
include_ice
博客等级 码龄9年 307粉丝 139原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值