网络编程之Socket通信(Java)进阶版

Socket网络编程进阶(Java版) Socket网络编程,一个服务端 对应 多个客户端,服务端采用多线程技术。 阅读详情

之前在前面已经介绍了Socket通信的一些基本原理,以及如何让客户端与服务器端建立通信,和实现通信的一些基本步骤(包括首先使得服务器端与客户端建立连接,建立连接之后,服务器端开始侦听客户端的请求,侦听到客户端的请求之后,通过输入输出流处理相关信息实现通信,最后通信完毕结束通信等一系列流程)。

但是之前只是单个客户端与服务器进行通信,而我们实际应用中单个客户端的情况几乎不存在,都是多个客户端同时与服务器进行交互(这里同时交互就会出现并发性的问题,对于并发性的问题暂时还不是很懂,只知道有这个概念),那就需要服务器端不停的侦听客户端的请求(写在while循环中,并且条件始终为true,死循环),每当侦听到一个客户端的请求时,都需要创建一个Socket与之建立通信(通过线程实现,每当侦听到一个客户端的请求,服务端都要单独开辟一条线程与之进行通信)。


下面直接贴代码吧:


1、服务端Socket,(这里面通过死循环让服务器端一直循环侦听来自客户端的请求)

需要注意的是,服务端必须要先于客户端启动,因为要启动之后才能侦听客户端的请求


  1. package com.socket;  
  2.   
  3. import java.io.IOException;  
  4. import java.net.ServerSocket;  
  5. import java.net.Socket;  
  6.   
  7. /** 
  8.  * 服务器端Socket 
  9.  * @author feizi 
  10.  * @time 2014-11-14下午5:08:16 
  11.  */  
  12. public class ServerSocketMany {  
  13.       
  14.     /** 
  15.      * main测试方法 
  16.      * @param args 
  17.      * @throws IOException 
  18.      */  
  19.     public static void main(String[] args) throws IOException{  
  20.           
  21.         System.out.println("服务器已经启动,等待客户端的连接....");  
  22.           
  23.         //创建服务器端Socket,即ServerSOcket,等待客户端的请求  
  24.         ServerSocket server = new ServerSocket(5555);  
  25.           
  26.         int count = 0;//侦听到的客户端的数量  
  27.           
  28.         Socket socket = null;//服务器端Socket  
  29.           
  30.         //死循环,让服务端循环侦听  
  31.         while(true){  
  32.               
  33.             //服务端开始侦听客户端的连接  
  34.             socket = server.accept();  
  35.               
  36.             //启动线程,与客户端进行通信  
  37.             Thread serverThread = new ServerThread(socket);  
  38.             serverThread.start();  
  39.               
  40.             //计数,统计客户端连接数  
  41.             count++;  
  42.               
  43.             System.out.println("当前链接的客户端的数量为:"+count+"个....");  
  44.         }  
  45.     }  
  46. }  
package com.socket;

import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;

/**
 * 服务器端Socket
 * @author feizi
 * @time 2014-11-14下午5:08:16
 */
public class ServerSocketMany {
	
	/**
	 * main测试方法
	 * @param args
	 * @throws IOException
	 */
	public static void main(String[] args) throws IOException{
		
		System.out.println("服务器已经启动,等待客户端的连接....");
		
		//创建服务器端Socket,即ServerSOcket,等待客户端的请求
		ServerSocket server = new ServerSocket(5555);
		
		int count = 0;//侦听到的客户端的数量
		
		Socket socket = null;//服务器端Socket
		
		//死循环,让服务端循环侦听
		while(true){
			
			//服务端开始侦听客户端的连接
			socket = server.accept();
			
			//启动线程,与客户端进行通信
			Thread serverThread = new ServerThread(socket);
			serverThread.start();
			
			//计数,统计客户端连接数
			count++;
			
			System.out.println("当前链接的客户端的数量为:"+count+"个....");
		}
	}
}


2、服务器端的线程实现类,线程中主要是实现与客户端的通信(通过输入输出流接收并响应数据信息)


  1. package com.socket;  
  2.   
  3. import java.io.BufferedReader;  
  4. import java.io.IOException;  
  5. import java.io.InputStream;  
  6. import java.io.InputStreamReader;  
  7. import java.io.OutputStream;  
  8. import java.io.PrintWriter;  
  9. import java.net.Socket;  
  10.   
  11. /** 
  12.  * 创建一个服务端线程,循环侦听客户端的请求,多个客户端 
  13.  * @author feizi 
  14.  * @time 2014-11-14下午5:36:45 
  15.  */  
  16. public class ServerThread extends Thread{  
  17.   
  18.     //每当侦听到一个新的客户端的时,服务端这边都要有一个Socket与之进行通信  
  19.     public Socket socket = null;  
  20.       
  21.     //默认的构造方法,保留  
  22.     public ServerThread(){}  
  23.       
  24.     //带参构造方法  
  25.     public ServerThread(Socket socket){  
  26.         this.socket = socket;  
  27.     }  
  28.       
  29.     //覆写run方法  
  30.     public void run(){  
  31.         //获取输入字节流  
  32.         InputStream in = null;  
  33.           
  34.         //将输入字节流包装成输入字符流  
  35.         InputStreamReader isr = null;  
  36.           
  37.         //为字符输入流添加缓冲  
  38.         BufferedReader br = null;  
  39.           
  40.         //收到信息之后,向客户端响应信息,获取输出字节流  
  41.         OutputStream out = null;  
  42.           
  43.         //将字节输出流包装成字符打印输出流  
  44.         PrintWriter pw = null;  
  45.           
  46.         try {  
  47.               
  48.             in = socket.getInputStream();  
  49.             isr = new InputStreamReader(in);  
  50.             br = new BufferedReader(isr);  
  51.               
  52.             //读取字符输入流中的数据  
  53.             String data = null;  
  54.             while((data = br.readLine()) != null){  
  55.                 System.out.println("我是服务器,客户端说:"+data);  
  56.             }  
  57.               
  58.             //调用shutDown方法关闭Socket输入流  
  59.             socket.shutdownInput();  
  60.               
  61.             out = socket.getOutputStream();  
  62.             pw = new PrintWriter(out);  
  63.             pw.write("用户名和密码正确");  
  64.             pw.flush();  
  65.               
  66.             //调用shutDown方法关闭Socket输出流  
  67.             socket.shutdownOutput();  
  68.               
  69.         } catch (IOException e) {  
  70.             e.printStackTrace();  
  71.         }finally{  
  72.               
  73.             //关闭资源  
  74.             try {  
  75.                 if(null != pw)  
  76.                     pw.close();  
  77.                 if(null != out)  
  78.                     out.close();  
  79.                 if(null != br)  
  80.                     br.close();  
  81.                 if(null != isr)  
  82.                     isr.close();  
  83.                 if(null != in)  
  84.                     in.close();  
  85.                 if(null != socket)  
  86.                     socket.close();  
  87.             } catch (IOException e) {  
  88.                 e.printStackTrace();  
  89.             }  
  90.         }  
  91.     }  
  92. }  
package com.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;

/**
 * 创建一个服务端线程,循环侦听客户端的请求,多个客户端
 * @author feizi
 * @time 2014-11-14下午5:36:45
 */
public class ServerThread extends Thread{

	//每当侦听到一个新的客户端的时,服务端这边都要有一个Socket与之进行通信
	public Socket socket = null;
	
	//默认的构造方法,保留
	public ServerThread(){}
	
	//带参构造方法
	public ServerThread(Socket socket){
		this.socket = socket;
	}
	
	//覆写run方法
	public void run(){
		//获取输入字节流
		InputStream in = null;
		
		//将输入字节流包装成输入字符流
		InputStreamReader isr = null;
		
		//为字符输入流添加缓冲
		BufferedReader br = null;
		
		//收到信息之后,向客户端响应信息,获取输出字节流
		OutputStream out = null;
		
		//将字节输出流包装成字符打印输出流
		PrintWriter pw = null;
		
		try {
			
			in = socket.getInputStream();
			isr = new InputStreamReader(in);
			br = new BufferedReader(isr);
			
			//读取字符输入流中的数据
			String data = null;
			while((data = br.readLine()) != null){
				System.out.println("我是服务器,客户端说:"+data);
			}
			
			//调用shutDown方法关闭Socket输入流
			socket.shutdownInput();
			
			out = socket.getOutputStream();
			pw = new PrintWriter(out);
			pw.write("用户名和密码正确");
			pw.flush();
			
			//调用shutDown方法关闭Socket输出流
			socket.shutdownOutput();
			
		} catch (IOException e) {
			e.printStackTrace();
		}finally{
			
			//关闭资源
			try {
				if(null != pw)
					pw.close();
				if(null != out)
					out.close();
				if(null != br)
					br.close();
				if(null != isr)
					isr.close();
				if(null != in)
					in.close();
				if(null != socket)
					socket.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
}



3、客户端Socket,这个和单客户端的情况一样,在第一篇中有详细介绍


  1. package com.socket;  
  2.   
  3. import java.io.BufferedReader;  
  4. import java.io.IOException;  
  5. import java.io.InputStream;  
  6. import java.io.InputStreamReader;  
  7. import java.io.OutputStream;  
  8. import java.io.PrintWriter;  
  9. import java.net.Socket;  
  10. import java.net.UnknownHostException;  
  11.   
  12. /** 
  13.  * 客户端Socket 
  14.  * @author feizi 
  15.  * @time 2014-11-14下午5:18:06 
  16.  */  
  17. public class ClientSocketDemo {  
  18.       
  19.     /** 
  20.      * main测试方法 
  21.      * @param args 
  22.      * @throws UnknownHostException 
  23.      * @throws IOException 
  24.      */  
  25.     public static void main(String[] args) throws UnknownHostException, IOException{  
  26.           
  27.         //创建客户端Socket,向服务器发起请求  
  28. //      String address = "127.0.0.1";  
  29.         String address = "localhost";//服务器地址  
  30.           
  31.         int port = 5555;//端口号  
  32.         Socket socket = new Socket(address, port);  
  33.           
  34.         //获取Socket的字节输出流  
  35.         OutputStream out = socket.getOutputStream();  
  36.           
  37.         //将字节输出流包装成字符打印输出流  
  38.         PrintWriter pw = new PrintWriter(out);  
  39.           
  40. //      pw.print("用户名:admin,密码:123");  
  41. //      pw.print("用户名:tom,密码:456");  
  42. //      pw.print("用户名:dark,密码:789");  
  43. //      pw.print("用户名:white,密码:111");  
  44.         pw.print("用户名:green,密码:222");  
  45.           
  46.         //刷新输出流  
  47.         pw.flush();  
  48.           
  49.         //调用shutDown方法关闭Socket的输出流  
  50.         socket.shutdownOutput();  
  51.           
  52.         //接收服务器端发来的响应信息,获取字节输入流  
  53.         InputStream in = socket.getInputStream();  
  54.           
  55.         //将字节输入流包装成字符输入流  
  56.         InputStreamReader isr = new InputStreamReader(in);  
  57.           
  58.         //为字符输入流添加缓冲  
  59.         BufferedReader br = new BufferedReader(isr);  
  60.           
  61.         //读取字符输入流中的数据信息  
  62.         String data = null;  
  63.         while((data = br.readLine()) != null){  
  64.             System.out.println("我是客户端,服务器说:"+data);  
  65.         }  
  66.           
  67.         //调用shutDown方法关闭Socket的输入流  
  68.         socket.shutdownInput();  
  69.           
  70.         br.close();  
  71.         isr.close();  
  72.         in.close();  
  73.         pw.close();  
  74.         out.close();  
  75.         socket.close();  
  76.     }  
  77. }  
package com.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;
import java.net.UnknownHostException;

/**
 * 客户端Socket
 * @author feizi
 * @time 2014-11-14下午5:18:06
 */
public class ClientSocketDemo {
	
	/**
	 * main测试方法
	 * @param args
	 * @throws UnknownHostException
	 * @throws IOException
	 */
	public static void main(String[] args) throws UnknownHostException, IOException{
		
		//创建客户端Socket,向服务器发起请求
//		String address = "127.0.0.1";
		String address = "localhost";//服务器地址
		
		int port = 5555;//端口号
		Socket socket = new Socket(address, port);
		
		//获取Socket的字节输出流
		OutputStream out = socket.getOutputStream();
		
		//将字节输出流包装成字符打印输出流
		PrintWriter pw = new PrintWriter(out);
		
//		pw.print("用户名:admin,密码:123");
//		pw.print("用户名:tom,密码:456");
//		pw.print("用户名:dark,密码:789");
//		pw.print("用户名:white,密码:111");
		pw.print("用户名:green,密码:222");
		
		//刷新输出流
		pw.flush();
		
		//调用shutDown方法关闭Socket的输出流
		socket.shutdownOutput();
		
		//接收服务器端发来的响应信息,获取字节输入流
		InputStream in = socket.getInputStream();
		
		//将字节输入流包装成字符输入流
		InputStreamReader isr = new InputStreamReader(in);
		
		//为字符输入流添加缓冲
		BufferedReader br = new BufferedReader(isr);
		
		//读取字符输入流中的数据信息
		String data = null;
		while((data = br.readLine()) != null){
			System.out.println("我是客户端,服务器说:"+data);
		}
		
		//调用shutDown方法关闭Socket的输入流
		socket.shutdownInput();
		
		br.close();
		isr.close();
		in.close();
		pw.close();
		out.close();
		socket.close();
	}
}


下面是程序运行结果截图:


客户端:




服务器端:




大家可以点此链接查看单客户端与服务器端交互的情况:

Java网络编程之Socket通信(一)


每天成长一点点,始终坚信:天道酬勤,努力了,奋斗了,一切切有可能!奋斗奋斗奋斗

Java网络编程之TCP/IP Socket实战 Java Socket编程是构建网络通信应用的基础,它通过底层TCP/IP协议实现跨网络的进程间通信。本章将从Socket的基本概念入手,逐步深入到Java中的Socket API使用方式,并通过示例程序展示如何搭建一个简单的Socket通信环境。Socket本质上是一种通信端点,它由IP地址和端口号唯一标识。在Java中,Socket是java.net包中的核心类,用于建立网络连接并进行数据传输。根据协议的不同,Socket可以分为两种类型:基于TCP协议的Socket。 阅读详情

相关推荐

基于51单片机的通讯聊天系统

通过编写51单片机通讯聊天程序,掌握51单片机的各个模块的知识点和运用C语言编写51单片机的能力。用51单片机与口袋开发板设计实现一个单片机与电脑串口助手实现通讯功能的程序。程序的主要功能如下: 1 OLED初始化显示Welcome to Bluetooth communication! 字符串。 2 程序开始时处于接收信息模式, 电脑串口助手发送信息时,将从初始化字符第一个开始显示,电脑串口助手发送信息后,蜂鸣器响铃2秒左右。 3 每次同时按下左右键时,可以轮流切换接收/发送信息模式 4 在发送信息模式时

m0_47419053的博客 3640

Socket介绍及使用Java实现socket通信

使用Java实现socket通信。

weixin_49561506的博客 2万+

解决 python2.7中 ImportError: No module named Crypto.Signature

我的解决办法,先查看有没有安装 pip,直接执行pip 回车 没有出现null什么的就安装了,如果没有安装去其他博客哪里看一下,正常情况是默认就有的,然后使用。发现我自己也不会啊,就百度看看,想着网上的解决方法一大片,但是都是废话,能用的没有几个,而且能安装的没有几个。这个里面的python2、3就是系统里面的python版本,直接跟我这样就可以了除非版本不一样,也就是没有这个版本。就可以使用了,第一个应该是卸载之前的,然后重新安装,我的就是这样解决的。就比如我的,我现在使用的 python2.7。

记录一下 1610

Java笔记 —— 网络编程

/ 3.发送消息 用IO流的方式/*客户端上的使用1.getInputStream方法可以得到一个输入流,客户端的Socket对象上的getInputStream方法得到输入流其实就是从服务器端发回的数据。2.getOutputStream方法得到的是一个输出流,客户端的Socket对象上的getOutputStream方法得到的输出流其实就是发送给服务器端的数据。=null){try {//服务端。

A1867350的博客 511

骗分导论 CSP、NOIP、蓝桥杯、PAT、USACO等竞赛的算法骗分技巧 轻松省三

问题来了,那么多座桥,炸一座就破坏岛屿的联系,可能性微乎其微(除非特别设计数据)。它们的价值极大,不仅能初步帮你检验程序的对错,而且,如果你不会做这道题,你就可以直接输出样例!在OI考试中最后难的题数据最后的几个,他们往往不会创造新的数据,此时就可以直接输出最后几个数据了。需要运用《骗分导论》第3章中学到的知识,先写出朴素算法,然后造一些数据,可能就会发现规律。有些时候,问题的答案可能很有特点:对于大多数情况,答案是一样的。据说,在NOIP2013中,有人最后一题不会,愤然打了个随机数,结果得了。

星卯教育-信奥教练tony 6405

如何下载era5数据?(两种方式)

供水利大数据云计算课程同学参考使用#

Camiel_sweet的博客 1万+

Java网络编程之Socket通信(二)

之前在前面已经介绍了Socket通信的一些基本原理,以及如何让客户端与服务器端建立通信,和实现通信的一些基本步骤(包括首先使得服务器端与客户端建立连接,建立连接之后,服务器端开始侦听客户端的请求,侦听到客户端的请求之后,通过输入输出流处理相关信息实现通信,最后通信完毕结束通信等一系列流程)。 但是之前只是单个客户端与服务器进行通信,而我们实际应用中单个客户端的情况几乎不存在,都是多个客户端同时与服务器进行交互(这里同时交互就会出现并发性的问题,对于并发性的问题暂时还不是很懂,只知道有这个概念),那就需要服

hu1991die的专栏 3023

Chapter 4 Ripple-Based Control Technique Part I

本文介绍了DC-DC转换器的纹波控制技术,重点分析了迟滞控制、恒定开通时间控制、恒定关断时间控制等方案的工作原理及优缺点。纹波控制无需补偿网络,具有快速瞬态响应和结构简单的优势,特别适合电池供电应用。其中,恒定开通时间控制在轻载时能自动延长关断时间,实现伪定频工作;而恒定关断时间控制轻载效率较低。文章还讨论了纹波注入技术解决Boost转换器右半平面零点问题,并比较了不同控制方案在负载瞬态下的性能表现。最后指出基于纹波的控制技术在提高调节精度和降低EMI方面的改进方向。

2304_76736886的博客 1303

Java网络编程Socket的使用

TCP/Url的学习

wanlzs521的博客 710

机器学习篇-KNN算法实现鸢尾花模型和手写数字识别模型

一个样本最相似的k个样本中的大多数属于某一个类别, 则该样本也属于这个类别类似于: 近朱者赤近墨者黑回归机器建模流程:数据获取数据基本处理(空值和非法值)特征工程(特征提取, 特征预处理(归一化, 标准化), 特征降维, 特征选择, 特征组合)模型训练模型预测模型评估# 1. 定义函数 dm01_load_iris(), 用于加载 鸢尾花数据集, 并简单查看下数据集的各部分.# 1. 加载数据集.​# 2. 打印iris_data, 发现其实是1个: 字典.​。

m0_60916732的博客 2405

给跨代引用记一本账:Java GC 的分配路径、卡表写屏障与收集器版图快速回顾

本文把 Java GC 的零散名词串成一条推理链路:从 TLAB 指针碰撞分配、逃逸分析,到 Eden、Survivor 与晋升的四条路,重点拆解卡表与写屏障如何为老年代指向新生代的引用记账,及 Minor GC 如何只扫脏卡。基于 JDK 8 实测:分散写使 Young GC 停顿涨 10~15 倍,条件卡标记消除卡表伪共享,计数循环让 System.gc 等待 2.7 秒,Survivor 过小使晋升量增加约 400 倍。文末梳理 JDK 8 到 27 的收集器演进、选型路径与排查顺序。

曾经“等你生日那天”都遥远得像未来,如今却可欢愉的挥手说“下个十年见” 17万+

java 网络编程Socket

java网络编程

weixin_53472653的博客 355

一文搞懂电流、电压的有效值 RMS

交流电有正半周、负半周,直接平均可能抵消成 0,但负半周一样会发热。这个交流电如果换成直流电,能产生同样发热功率时,对应的直流电压或电流”,电容耐压通常不能按 220V 选,常见会选 400V 或更高余量。所以做硬件时,220VAC 整流滤波后电容上会接近。电压/电流的有效值,也叫。如果它加在电阻上,发热按。

qq_52293640的博客 452

Socket网络编程-TCP&UDP

认真学完,相信你会有收获 文章目录1.网络编程概述1.1 什么是网络编程1.1.1 理解网络编程1.1.2 网络编程结构1.2 IP地址及端口号2.Java网络编程-Socket2.1 网络套接字(Socket)2.2 Socket入门案例2.2.1 编写并运行服务器端2.2.2 编写并运行客户端2.2.3 如何运行?2.3 Socket获取对方IP地址2.3.1 服务端编写2.3.2 客户端编写...

兮赫的博客 886

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Java网络编程(JavaWeb的基础)

区分网络中的不能主机:唯一的IP地址常用的网络应用程序模型:客户端-服务器。服务器:是一个为其客户端提供某种特定服务的硬件或软件。客户机是一个用户应用程序,用于访问某台服务器提供的服务。端口号是对一个服务的访问场所,它用于区分同一物理计算机上的多个服务。套接字用于连接客户端和服务器,客户端和服务器之间的每个通信会话使用一个不同的套接字。TCP协议用于实现面向连接的会话。Java 中有关网络方面的功能都定义在 java.net 程序包中。

weixin_44525733的博客 1456

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Java网络编程(TCP)

Java网络编程是利用Java语言进行网络通信应用程序开发的过程。它主要基于TCP/IP协议栈,支持Socket编程,包括流式Socket(TCP)和数据报Socket(UDP)。通过Socket,程序可以创建服务器端或客户端,实现网络上的数据传输与交互。

qq_69907434的博客 1502

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Socket网络编程

Socket网络编程是计算机网络通信的核心技术,支持TCP和UDP协议。TCP提供可靠传输,适用于文件传输等场景;UDP则适合实时应用。Java通过java.net包实现Socket编程,包括TCP的ServerSocket/Socket和UDP的DatagramSocket。Python则使用socket模块提供简单的网络接口。典型流程包括:服务器监听端口、客户端连接、数据交换和关闭连接。文中提供了Java和Python的TCP/UDP代码示例,展示了基础通信模型的实现。

m0_57545130的博客 1157

java socket网络通信_java网络编程Socket通信详解

Java最初是作为网络编程语言出现的,其对网络提供了高度的支持,使得客户端和服务器的沟通变成了现实,而在网络编程中,使用最多的就是Socket。像大家熟悉的QQ、MSN都使用了Socket相关的技术。下面就让我们一起揭开Socket的神秘面纱。Socket编程一、网络基础知识(参考计算机网络)关于计算机网络部分可以参考相关博客:《TCP/IP协议栈及OSI参考模型详解》1、两台计算机间进行通讯需要...

weixin_39525007的博客 223

Java基础15-java进阶(6)【网络编程】

Java进阶06 网络编程 1 网络编程概述 计算机网络: 把分布在不同地理区域的计算机与专门的外部设备用通信线路互连成一个规 模大、功能强的网络系统,从而使众多的计算机可以方便地互相传递信息、共享硬件、软件、数据信息等资源。 网络编程的目的: 直接或间接地通过网络协议与其它计算机实现数据交换,进行通讯。 网络编程中有两个主要的问题: 如何准确地定位网络上一台或多台主机;//用IP地址 定位主机上的特定的应用找到主机后如何可靠高效地进行数据传输 //通讯协议 Java网络编程

小管博客空间站 404

网络编程 IP地址 DNS 服务器 协议 socket套接字 通信模型 客户端/服务端

文章目录网络编程IP地址的组成cmd命令DNS服务器模式介绍协议Socket常用API两种网络通信模型基于TCP协议的Socket网络通信Socket通信模型Socket网络编程的步骤:客户端/服务端(C/S)详细步骤多客户端 网络编程 IP地址的组成 四个8位的二进制数由三个“.”分割开来 为了好记,改写为十进制的; IP地址= 网络地址+主机地址 1、网络地址:标识计算机或网络设备所在的网段 2、主机地址:标识特定主机或网络设备 分为:每个【】占8位 A类:【网络】 【主机】【主机】【主机】1~126

weixin_45279447的博客 533

JAVA网络编程个人笔记 第8章 TCP Socket编程

JAVA网络编程个人笔记 第8章 TCP Socket编程TCP Socket编程计算机组网简介Socket与ServerSocket介绍相关知识简介使用Socket进行网络通信的过程Socket主要方法简介构造方法Socket的输入/输出流管理关闭Socket设置/获取Socket数据Socket演示建立Socket--在客户端建立Socket--在服务器端在客户端和服务器端同时打开输入/输出流关闭输入/输出流和Socket代码实例端口扫描客户端服务器端 TCP Socket编程 计算机组网简介

mcyuuji的博客 527

JAVA socket编程

资料来源 Java 网络编程 之 socket 的用法与实现 安卓之必须了解的实时通信(Socket) android进阶3step2:Android App通信 ——端口号IP等网络基础知识扫盲

RungBy的博客 362

Java网络编程——Socket通信

Socket通信基于TCP/IP协议。TCP/IP通信协议是一种可靠的网络协议,它在通信的两端各建立一个Socket,从而在通信的两端之间形成网络虚拟链路。一旦建立了虚拟的网络链路,两端的程序就可以通过网络虚拟链路进行通信。 Java对基于TCP/IP协议的网络通信提供了良好的封装,Java使用Socket对象来代表两端的通信端口,并通过Socket产生IO流来进行网络通信。 TCP/IP协议...

zengkaiqiang562的博客 437

网络编程 - Socket编程

java socket编程 Java Socket编程----通信是这样炼成的 针对网络通信的不同层次,Java提供了不同的API,其提供的网络功能有四大类 1. InetAddress 用于标识网络上的硬件资源,标识互联网协议(IP)地址。 //获取本机的InetAddress实例 InetAddress address =InetAddress.getLocalHost(); address....

Javaer`s blog 841

Java中的网络编程实践指南

通过本文的介绍,相信大家对Java中的网络编程有了更深入的了解。网络编程是Java开发中非常重要的一部分,掌握了这些技术,可以让我们更好地开发各种类型的网络应用,提高开发效率和代码质量。

微赚淘客开发者博客 342

Socket编程

Java最初是作为网络编程语言出现的,其对网络提供了高度的支持,使得客户端和服务器的沟通变成了现实,而在网络编程中,使用最多的就是Socket。像大家熟悉的QQ、MSN都使用了Socket相关的技术。下面就让我们一起揭开Socket的神秘面纱。 Socket编程 一、网络基础知识(参考计算机网络) 关于计算机网络部分可以参考相关博客: 《...

aan5489的博客 113
上一篇: 网络编程之Socket通信(Java)
下一篇: 11个简单的Java性能调优技巧
魅影骑士0050
博客等级 码龄12年 24粉丝 48原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值