- 浏览: 166391 次
- 性别:
- 来自: 南京
文章分类
- 全部博客 (158)
- 每天工作日志 (64)
- php工作遇到技术难题记录 (4)
- linux成长记录 (17)
- web前端开发记录 (12)
- SQL成长记录 (16)
- joomla开发记录 (0)
- 开发工具使用记录 (1)
- vpn简单安装 (0)
- 直接查询字段结果进行以逗号分隔,不用在php代码中进行foreach循环处理 (1)
- phalcon项目搭建 (1)
- java项目实践 (5)
- share everythings (0)
- Mac工作记录 (3)
- 闲文杂谈 (6)
- 细说javascript面向对象 (0)
- 瞎几把扯 (2)
- Shell编程学习与分享 (0)
- GO语言开发 (5)
- angular2 (1)
- Go开发 (3)
- java开发 (15)
最新评论
-
弹指一世界:
感谢博主分享,但是我把项目下载下来放本地运行报了一个错误Exc ...
php phalcon项目实战 -
xialluyouyue:
...
php xmlrpc的简单实用
Java最初是作为网络编程语言出现的,其对网络提供了高度的支持,使得客户端和服务器的沟通变成了现实,而在网络编程中,使用最多的就是Socket。像大家熟悉的QQ、MSN都使用了Socket相关的技术。下面就让我们一起揭开Socket的神秘面纱。
Socket编程
一、网络基础知识(参考计算机网络)
关于计算机网络部分可以参考相关博客:
《TCP/IP协议栈及OSI参考模型详解》
http://wangdy.blog.51cto.com/3845563/1588379
1、两台计算机间进行通讯需要以下三个条件:
IP地址、协议、端口号
2、TCP/IP协议:
是目前世界上应用最为广泛的协议,是以TCP和IP为基础的不同层次上多个协议的集合,也成TCP/IP协议族、或TCP/IP协议栈
TCP:Transmission Control Protocol 传输控制协议
IP:Internet Protocol 互联网协议
3、TCP/IP五层模型
应用层:HTTP、FTP、SMTP、Telnet等
传输层:TCP/IP
网络层:
数据链路层:
物理层:网线、双绞线、网卡等
4、IP地址
为实现网络中不同计算机之间的通信,每台计算机都必须有一个唯一的标识---IP地址。
32位二进制
5、端口
区分一台主机的多个不同应用程序,端口号范围为0-65535,其中0-1023位为系统保留。
如:HTTP:80 FTP:21 Telnet:23
IP地址+端口号组成了所谓的Socket,Socket是网络上运行的程序之间双向通信链路的终结点,是TCP和UDP的基础
6、Socket套接字:
网络上具有唯一标识的IP地址和端口组合在一起才能构成唯一能识别的标识符套接字。
Socket原理机制:
通信的两端都有Socket
网络通信其实就是Socket间的通信
数据在两个Socket间通过IO传输
7、Java中的网络支持
针对网络通信的不同层次,Java提供了不同的API,其提供的网络功能有四大类:
InetAddress:用于标识网络上的硬件资源,主要是IP地址
URL:统一资源定位符,通过URL可以直接读取或写入网络上的数据
Sockets:使用TCP协议实现的网络通信Socket相关的类
Datagram:使用UDP协议,将数据保存在用户数据报中,通过网络进行通信。
二、InetAddress
InetAddress类用于标识网络上的硬件资源,标识互联网协议(IP)地址。
该类没有构造方法
复制代码
1 //获取本机的InetAddress实例
2 InetAddress address =InetAddress.getLocalHost();
3 address.getHostName();//获取计算机名
4 address.getHostAddress();//获取IP地址
5 byte[] bytes = address.getAddress();//获取字节数组形式的IP地址,以点分隔的四部分
6
7 //获取其他主机的InetAddress实例
8 InetAddress address2 =InetAddress.getByName("其他主机名");
9 InetAddress address3 =InetAddress.getByName("IP地址");
复制代码
三、URL类
1、URL(Uniform Resource Locator)统一资源定位符,表示Internet上某一资源的地址,协议名:资源名称
复制代码
1 //创建一个URL的实例
2 URL baidu =new URL("http://www.baidu.com");
3 URL url =new URL(baidu,"/index.html?username=tom#test");//?表示参数,#表示锚点
4 url.getProtocol();//获取协议
5 url.getHost();//获取主机
6 url.getPort();//如果没有指定端口号,根据协议不同使用默认端口。此时getPort()方法的返回值为 -1
7 url.getPath();//获取文件路径
8 url.getFile();//文件名,包括文件路径+参数
9 url.getRef();//相对路径,就是锚点,即#号后面的内容
10 url.getQuery();//查询字符串,即参数
复制代码
2、使用URL读取网页内容
通过URL对象的openStream()方法可以得到指定资源的输入流,通过流能够读取或访问网页上的资源
复制代码
1 //使用URL读取网页内容
2 //创建一个URL实例
3 URL url =new URL("http://www.baidu.com");
4 InputStream is = url.openStream();//通过openStream方法获取资源的字节输入流
5 InputStreamReader isr =newInputStreamReader(is,"UTF-8");//将字节输入流转换为字符输入流,如果不指定编码,中文可能会出现乱码
6 BufferedReader br =newBufferedReader(isr);//为字符输入流添加缓冲,提高读取效率
7 String data = br.readLine();//读取数据
8 while(data!=null){
9 System.out.println(data);//输出数据
10 data = br.readerLine();
11 }
12 br.close();
13 isr.colose();
14 is.close();
复制代码
四、TCP编程
1、TCP协议是面向连接的、可靠的、有序的、以字节流的方式发送数据,通过三次握手方式建立连接,形成传输数据的通道,在连接中进行大量数据的传输,效率会稍低
2、Java中基于TCP协议实现网络通信的类
客户端的Socket类
服务器端的ServerSocket类
3、Socket通信的步骤
① 创建ServerSocket和Socket
② 打开连接到Socket的输入/输出流
③ 按照协议对Socket进行读/写操作
④ 关闭输入输出流、关闭Socket
4、服务器端:
① 创建ServerSocket对象,绑定监听端口
② 通过accept()方法监听客户端请求
③ 连接建立后,通过输入流读取客户端发送的请求信息
④ 通过输出流向客户端发送乡音信息
⑤ 关闭相关资源
复制代码
1 /**
2 * 基于TCP协议的Socket通信,实现用户登录,服务端
3 */
4 //1、创建一个服务器端Socket,即ServerSocket,指定绑定的端口,并监听此端口
5 ServerSocket serverSocket =newServerSocket(10086);//1024-65535的某个端口
6 //2、调用accept()方法开始监听,等待客户端的连接
7 Socket socket = serverSocket.accept();
8 //3、获取输入流,并读取客户端信息
9 InputStream is = socket.getInputStream();
10 InputStreamReader isr =newInputStreamReader(is);
11 BufferedReader br =newBufferedReader(isr);
12 String info =null;
13 while((info=br.readLine())!=null){
14 System.out.println("我是服务器,客户端说:"+info);
15 }
16 socket.shutdownInput();//关闭输入流
17 //4、获取输出流,响应客户端的请求
18 OutputStream os = socket.getOutputStream();
19 PrintWriter pw = new PrintWriter(os);
20 pw.write("欢迎您!");
21 pw.flush();
22
23
24 //5、关闭资源
25 pw.close();
26 os.close();
27 br.close();
28 isr.close();
29 is.close();
30 socket.close();
31 serverSocket.close();
复制代码
5、客户端:
① 创建Socket对象,指明需要连接的服务器的地址和端口号
② 连接建立后,通过输出流想服务器端发送请求信息
③ 通过输入流获取服务器响应的信息
④ 关闭响应资源
复制代码
1 //客户端
2 //1、创建客户端Socket,指定服务器地址和端口
3 Socket socket =newSocket("localhost",10086);
4 //2、获取输出流,向服务器端发送信息
5 OutputStream os = socket.getOutputStream();//字节输出流
6 PrintWriter pw =newPrintWriter(os);//将输出流包装成打印流
7 pw.write("用户名:admin;密码:123");
8 pw.flush();
9 socket.shutdownOutput();
10 //3、获取输入流,并读取服务器端的响应信息
11 InputStream is = socket.getInputStream();
12 BufferedReader br = new BufferedReader(new InputStreamReader(is));
13 String info = null;
14 while((info=br.readLine())!null){
15 System.out.println("我是客户端,服务器说:"+info);
16 }
17
18 //4、关闭资源
19 br.close();
20 is.close();
21 pw.close();
22 os.close();
23 socket.close();
复制代码
6、应用多线程实现服务器与多客户端之间的通信
① 服务器端创建ServerSocket,循环调用accept()等待客户端连接
② 客户端创建一个socket并请求和服务器端连接
③ 服务器端接受苦读段请求,创建socket与该客户建立专线连接
④ 建立连接的两个socket在一个单独的线程上对话
⑤ 服务器端继续等待新的连接
复制代码
1 //服务器线程处理
2 //和本线程相关的socket
3 Socket socket =null;
4 //
5 public serverThread(Socket socket){
6 this.socket = socket;
7 }
8
9 publicvoid run(){
10 //服务器处理代码
11 }
12
13 //============================================
14 //服务器代码
15 ServerSocket serverSocket =newServerSocket(10086);
16 Socket socket =null;
17 int count =0;//记录客户端的数量
18 while(true){
19 socket = serverScoket.accept();
20 ServerThread serverThread =newServerThread(socket);
21 serverThread.start();
22 count++;
23 System.out.println("客户端连接的数量:"+count);
24 }
复制代码
五、UDP编程
UDP协议(用户数据报协议)是无连接的、不可靠的、无序的,速度快
进行数据传输时,首先将要传输的数据定义成数据报(Datagram),大小限制在64k,在数据报中指明数据索要达到的Socket(主机地址和端口号),然后再将数据报发送出去
DatagramPacket类:表示数据报包
DatagramSocket类:进行端到端通信的类
1、服务器端实现步骤
① 创建DatagramSocket,指定端口号
② 创建DatagramPacket
③ 接受客户端发送的数据信息
④ 读取数据
复制代码
1 //服务器端,实现基于UDP的用户登录
2 //1、创建服务器端DatagramSocket,指定端口
3 DatagramSocket socket =new datagramSocket(10010);
4 //2、创建数据报,用于接受客户端发送的数据
5 byte[] data =newbyte[1024];//
6 DatagramPacket packet =newDatagramPacket(data,data.length);
7 //3、接受客户端发送的数据
8 socket.receive(packet);//此方法在接受数据报之前会一致阻塞
9 //4、读取数据
10 String info =newString(data,o,data.length);
11 System.out.println("我是服务器,客户端告诉我"+info);
12
13
14 //=========================================================
15 //向客户端响应数据
16 //1、定义客户端的地址、端口号、数据
17 InetAddress address = packet.getAddress();
18 int port = packet.getPort();
19 byte[] data2 = "欢迎您!".geyBytes();
20 //2、创建数据报,包含响应的数据信息
21 DatagramPacket packet2 = new DatagramPacket(data2,data2.length,address,port);
22 //3、响应客户端
23 socket.send(packet2);
24 //4、关闭资源
25 socket.close();
复制代码
2、客户端实现步骤
① 定义发送信息
② 创建DatagramPacket,包含将要发送的信息
③ 创建DatagramSocket
④ 发送数据
复制代码
1 //客户端
2 //1、定义服务器的地址、端口号、数据
3 InetAddress address =InetAddress.getByName("localhost");
4 int port =10010;
5 byte[] data ="用户名:admin;密码:123".getBytes();
6 //2、创建数据报,包含发送的数据信息
7 DatagramPacket packet = newDatagramPacket(data,data,length,address,port);
8 //3、创建DatagramSocket对象
9 DatagramSocket socket =newDatagramSocket();
10 //4、向服务器发送数据
11 socket.send(packet);
12
13
14 //接受服务器端响应数据
15 //======================================
16 //1、创建数据报,用于接受服务器端响应数据
17 byte[] data2 = new byte[1024];
18 DatagramPacket packet2 = new DatagramPacket(data2,data2.length);
19 //2、接受服务器响应的数据
20 socket.receive(packet2);
21 String raply = new String(data2,0,packet2.getLenth());
22 System.out.println("我是客户端,服务器说:"+reply);
23 //4、关闭资源
24 socket.close();
复制代码
六、注意问题:
1、多线程的优先级问题:
根据实际的经验,适当的降低优先级,否侧可能会有程序运行效率低的情况
2、是否关闭输出流和输入流:
对于同一个socket,如果关闭了输出流,则与该输出流关联的socket也会被关闭,所以一般不用关闭流,直接关闭socket即可
3、使用TCP通信传输对象,IO中序列化部分
4、socket编程传递文件,IO流部分
Socket编程
一、网络基础知识(参考计算机网络)
关于计算机网络部分可以参考相关博客:
《TCP/IP协议栈及OSI参考模型详解》
http://wangdy.blog.51cto.com/3845563/1588379
1、两台计算机间进行通讯需要以下三个条件:
IP地址、协议、端口号
2、TCP/IP协议:
是目前世界上应用最为广泛的协议,是以TCP和IP为基础的不同层次上多个协议的集合,也成TCP/IP协议族、或TCP/IP协议栈
TCP:Transmission Control Protocol 传输控制协议
IP:Internet Protocol 互联网协议
3、TCP/IP五层模型
应用层:HTTP、FTP、SMTP、Telnet等
传输层:TCP/IP
网络层:
数据链路层:
物理层:网线、双绞线、网卡等
4、IP地址
为实现网络中不同计算机之间的通信,每台计算机都必须有一个唯一的标识---IP地址。
32位二进制
5、端口
区分一台主机的多个不同应用程序,端口号范围为0-65535,其中0-1023位为系统保留。
如:HTTP:80 FTP:21 Telnet:23
IP地址+端口号组成了所谓的Socket,Socket是网络上运行的程序之间双向通信链路的终结点,是TCP和UDP的基础
6、Socket套接字:
网络上具有唯一标识的IP地址和端口组合在一起才能构成唯一能识别的标识符套接字。
Socket原理机制:
通信的两端都有Socket
网络通信其实就是Socket间的通信
数据在两个Socket间通过IO传输
7、Java中的网络支持
针对网络通信的不同层次,Java提供了不同的API,其提供的网络功能有四大类:
InetAddress:用于标识网络上的硬件资源,主要是IP地址
URL:统一资源定位符,通过URL可以直接读取或写入网络上的数据
Sockets:使用TCP协议实现的网络通信Socket相关的类
Datagram:使用UDP协议,将数据保存在用户数据报中,通过网络进行通信。
二、InetAddress
InetAddress类用于标识网络上的硬件资源,标识互联网协议(IP)地址。
该类没有构造方法
复制代码
1 //获取本机的InetAddress实例
2 InetAddress address =InetAddress.getLocalHost();
3 address.getHostName();//获取计算机名
4 address.getHostAddress();//获取IP地址
5 byte[] bytes = address.getAddress();//获取字节数组形式的IP地址,以点分隔的四部分
6
7 //获取其他主机的InetAddress实例
8 InetAddress address2 =InetAddress.getByName("其他主机名");
9 InetAddress address3 =InetAddress.getByName("IP地址");
复制代码
三、URL类
1、URL(Uniform Resource Locator)统一资源定位符,表示Internet上某一资源的地址,协议名:资源名称
复制代码
1 //创建一个URL的实例
2 URL baidu =new URL("http://www.baidu.com");
3 URL url =new URL(baidu,"/index.html?username=tom#test");//?表示参数,#表示锚点
4 url.getProtocol();//获取协议
5 url.getHost();//获取主机
6 url.getPort();//如果没有指定端口号,根据协议不同使用默认端口。此时getPort()方法的返回值为 -1
7 url.getPath();//获取文件路径
8 url.getFile();//文件名,包括文件路径+参数
9 url.getRef();//相对路径,就是锚点,即#号后面的内容
10 url.getQuery();//查询字符串,即参数
复制代码
2、使用URL读取网页内容
通过URL对象的openStream()方法可以得到指定资源的输入流,通过流能够读取或访问网页上的资源
复制代码
1 //使用URL读取网页内容
2 //创建一个URL实例
3 URL url =new URL("http://www.baidu.com");
4 InputStream is = url.openStream();//通过openStream方法获取资源的字节输入流
5 InputStreamReader isr =newInputStreamReader(is,"UTF-8");//将字节输入流转换为字符输入流,如果不指定编码,中文可能会出现乱码
6 BufferedReader br =newBufferedReader(isr);//为字符输入流添加缓冲,提高读取效率
7 String data = br.readLine();//读取数据
8 while(data!=null){
9 System.out.println(data);//输出数据
10 data = br.readerLine();
11 }
12 br.close();
13 isr.colose();
14 is.close();
复制代码
四、TCP编程
1、TCP协议是面向连接的、可靠的、有序的、以字节流的方式发送数据,通过三次握手方式建立连接,形成传输数据的通道,在连接中进行大量数据的传输,效率会稍低
2、Java中基于TCP协议实现网络通信的类
客户端的Socket类
服务器端的ServerSocket类
3、Socket通信的步骤
① 创建ServerSocket和Socket
② 打开连接到Socket的输入/输出流
③ 按照协议对Socket进行读/写操作
④ 关闭输入输出流、关闭Socket
4、服务器端:
① 创建ServerSocket对象,绑定监听端口
② 通过accept()方法监听客户端请求
③ 连接建立后,通过输入流读取客户端发送的请求信息
④ 通过输出流向客户端发送乡音信息
⑤ 关闭相关资源
复制代码
1 /**
2 * 基于TCP协议的Socket通信,实现用户登录,服务端
3 */
4 //1、创建一个服务器端Socket,即ServerSocket,指定绑定的端口,并监听此端口
5 ServerSocket serverSocket =newServerSocket(10086);//1024-65535的某个端口
6 //2、调用accept()方法开始监听,等待客户端的连接
7 Socket socket = serverSocket.accept();
8 //3、获取输入流,并读取客户端信息
9 InputStream is = socket.getInputStream();
10 InputStreamReader isr =newInputStreamReader(is);
11 BufferedReader br =newBufferedReader(isr);
12 String info =null;
13 while((info=br.readLine())!=null){
14 System.out.println("我是服务器,客户端说:"+info);
15 }
16 socket.shutdownInput();//关闭输入流
17 //4、获取输出流,响应客户端的请求
18 OutputStream os = socket.getOutputStream();
19 PrintWriter pw = new PrintWriter(os);
20 pw.write("欢迎您!");
21 pw.flush();
22
23
24 //5、关闭资源
25 pw.close();
26 os.close();
27 br.close();
28 isr.close();
29 is.close();
30 socket.close();
31 serverSocket.close();
复制代码
5、客户端:
① 创建Socket对象,指明需要连接的服务器的地址和端口号
② 连接建立后,通过输出流想服务器端发送请求信息
③ 通过输入流获取服务器响应的信息
④ 关闭响应资源
复制代码
1 //客户端
2 //1、创建客户端Socket,指定服务器地址和端口
3 Socket socket =newSocket("localhost",10086);
4 //2、获取输出流,向服务器端发送信息
5 OutputStream os = socket.getOutputStream();//字节输出流
6 PrintWriter pw =newPrintWriter(os);//将输出流包装成打印流
7 pw.write("用户名:admin;密码:123");
8 pw.flush();
9 socket.shutdownOutput();
10 //3、获取输入流,并读取服务器端的响应信息
11 InputStream is = socket.getInputStream();
12 BufferedReader br = new BufferedReader(new InputStreamReader(is));
13 String info = null;
14 while((info=br.readLine())!null){
15 System.out.println("我是客户端,服务器说:"+info);
16 }
17
18 //4、关闭资源
19 br.close();
20 is.close();
21 pw.close();
22 os.close();
23 socket.close();
复制代码
6、应用多线程实现服务器与多客户端之间的通信
① 服务器端创建ServerSocket,循环调用accept()等待客户端连接
② 客户端创建一个socket并请求和服务器端连接
③ 服务器端接受苦读段请求,创建socket与该客户建立专线连接
④ 建立连接的两个socket在一个单独的线程上对话
⑤ 服务器端继续等待新的连接
复制代码
1 //服务器线程处理
2 //和本线程相关的socket
3 Socket socket =null;
4 //
5 public serverThread(Socket socket){
6 this.socket = socket;
7 }
8
9 publicvoid run(){
10 //服务器处理代码
11 }
12
13 //============================================
14 //服务器代码
15 ServerSocket serverSocket =newServerSocket(10086);
16 Socket socket =null;
17 int count =0;//记录客户端的数量
18 while(true){
19 socket = serverScoket.accept();
20 ServerThread serverThread =newServerThread(socket);
21 serverThread.start();
22 count++;
23 System.out.println("客户端连接的数量:"+count);
24 }
复制代码
五、UDP编程
UDP协议(用户数据报协议)是无连接的、不可靠的、无序的,速度快
进行数据传输时,首先将要传输的数据定义成数据报(Datagram),大小限制在64k,在数据报中指明数据索要达到的Socket(主机地址和端口号),然后再将数据报发送出去
DatagramPacket类:表示数据报包
DatagramSocket类:进行端到端通信的类
1、服务器端实现步骤
① 创建DatagramSocket,指定端口号
② 创建DatagramPacket
③ 接受客户端发送的数据信息
④ 读取数据
复制代码
1 //服务器端,实现基于UDP的用户登录
2 //1、创建服务器端DatagramSocket,指定端口
3 DatagramSocket socket =new datagramSocket(10010);
4 //2、创建数据报,用于接受客户端发送的数据
5 byte[] data =newbyte[1024];//
6 DatagramPacket packet =newDatagramPacket(data,data.length);
7 //3、接受客户端发送的数据
8 socket.receive(packet);//此方法在接受数据报之前会一致阻塞
9 //4、读取数据
10 String info =newString(data,o,data.length);
11 System.out.println("我是服务器,客户端告诉我"+info);
12
13
14 //=========================================================
15 //向客户端响应数据
16 //1、定义客户端的地址、端口号、数据
17 InetAddress address = packet.getAddress();
18 int port = packet.getPort();
19 byte[] data2 = "欢迎您!".geyBytes();
20 //2、创建数据报,包含响应的数据信息
21 DatagramPacket packet2 = new DatagramPacket(data2,data2.length,address,port);
22 //3、响应客户端
23 socket.send(packet2);
24 //4、关闭资源
25 socket.close();
复制代码
2、客户端实现步骤
① 定义发送信息
② 创建DatagramPacket,包含将要发送的信息
③ 创建DatagramSocket
④ 发送数据
复制代码
1 //客户端
2 //1、定义服务器的地址、端口号、数据
3 InetAddress address =InetAddress.getByName("localhost");
4 int port =10010;
5 byte[] data ="用户名:admin;密码:123".getBytes();
6 //2、创建数据报,包含发送的数据信息
7 DatagramPacket packet = newDatagramPacket(data,data,length,address,port);
8 //3、创建DatagramSocket对象
9 DatagramSocket socket =newDatagramSocket();
10 //4、向服务器发送数据
11 socket.send(packet);
12
13
14 //接受服务器端响应数据
15 //======================================
16 //1、创建数据报,用于接受服务器端响应数据
17 byte[] data2 = new byte[1024];
18 DatagramPacket packet2 = new DatagramPacket(data2,data2.length);
19 //2、接受服务器响应的数据
20 socket.receive(packet2);
21 String raply = new String(data2,0,packet2.getLenth());
22 System.out.println("我是客户端,服务器说:"+reply);
23 //4、关闭资源
24 socket.close();
复制代码
六、注意问题:
1、多线程的优先级问题:
根据实际的经验,适当的降低优先级,否侧可能会有程序运行效率低的情况
2、是否关闭输出流和输入流:
对于同一个socket,如果关闭了输出流,则与该输出流关联的socket也会被关闭,所以一般不用关闭流,直接关闭socket即可
3、使用TCP通信传输对象,IO中序列化部分
4、socket编程传递文件,IO流部分
发表评论
-
shell脚本--sed的用法(转)
2019-12-06 10:50 306本文链接:https://blog.csdn.net/wdz3 ... -
Javascript 面试核心考点(转)
2019-06-26 16:53 435Javascript 面试核心考点(转) 原文链接 ht ... -
Java注解(Annotation)
2019-02-21 09:42 288一、认识注解 注解 ... -
MySQL中单句实现无限层次父子关系查询
2019-02-19 14:08 2347在 SQL Server 中,使用 CTE 表达式很容易做到无 ... -
Nginx中fastcgi_pass的配置问题
2018-12-26 16:19 1005Nginx和PHP-FPM的进程间通信有两种方式,一种是TCP ... -
PHP消息队列实现及应用
2018-06-01 13:53 519https://www.cnblogs.com/dump/p/ ... -
php rsa加密解密实例(转)
2018-06-01 11:23 404php服务端与客户端交互、提供开放api时,通常需要对敏感的部 ... -
远程管理项目部署(lamp)@Author:Tim Lu
2018-05-08 16:57 459远程管理项目部署(lamp)@Author:Tim Lu 切 ... -
PHP语言 fopen()函数不能打开文件的问题
2018-04-17 11:14 1051架了一个Apache服务器,文件目录为/var/www/,今天 ... -
Ubuntu下PHP安装C扩展
2018-04-13 09:04 643一、服务器环境 - Ubuntu 16.04.2 LTS x ... -
linux的nohup命令的用法。
2018-01-04 15:33 415在应用Unix/Linux时,我们一般想让某个程序在后台运行, ... -
golang fmt格式“占位符”
2017-06-01 10:24 498golang 的fmt 包实现了格式化I/O函数,类似于C的 ... -
golang笔记——struct
2017-05-27 08:40 6621、定义一个结构体 type User struct ... -
给MySQL增加mysql-udf-http和mysql-udf-json自定义函数,让MySQL有调用http接口和查询直接回JSON的能力
2017-04-21 14:04 16801、安装mysql-udf-httpyum install ... -
PHP通过Http Post请求发送Json对象数据
2017-03-26 21:47 778public static function httpP ... -
关于node.js和npm,cnpm的安装记录以及gulp自动构建工具的使用(转)
2017-02-08 14:33 780工作环境:window下 在一切的最开始,安装node.j ... -
Phalcon Mac|Window安装扩展
2016-12-05 17:12 1327Mac安装配置Phalcon扩展遇到问题: 在搭建以Ph ... -
自定义php按照指定key进行数组排序
2016-11-01 11:34 1778function sksort(&$array, $ ... -
统计MySQL中某个数据库中有多少张表
2016-10-09 16:09 650SELECT count(*) TABLES, table ... -
避免api以及项目后台调用数据重复,直接可以调用api信息测试
2016-09-14 16:09 670避免api以及项目后台调用数据重复,直接可以调用api信息测 ...
相关推荐
Java Socket编程是Java平台中用于实现网络通信的核心API,它基于TCP/IP协议栈,提供了低级别的、面向连接的、可靠的字节流通信。在本文中,我们将深入探讨Java Socket编程的关键概念、工作原理以及如何创建服务端和...
Java Socket 编程实现两台主机间的通信 Java Socket 编程是 Java 语言中用于实现网络通信的编程技术。通过使用 Socket 编程,可以实现两台主机之间的通信,实现数据的传输和交换。本文将详细介绍 Java Socket 编程...
java socket编程 java网络编程 课件 java socket编程 java网络编程 课件
Java Socket编程是网络编程的基础,它提供了在两个应用程序之间建立通信连接的能力。在这个场景中,我们讨论的是如何使用Java的Socket来实现文件上传功能,即从客户端将文件发送到服务器,然后保存到服务器的数据库...
### Java Socket编程详解及实例分析 #### 一、Socket编程基础概述 在计算机网络通信领域,Socket编程是一种广泛使用的通信方式。它为不同主机上的进程提供了双向通信的能力,是网络编程的基础之一。Java语言提供了...
Java Socket编程是Java网络编程的重要组成部分,主要用于实现客户端与服务器之间的通信。在本文中,我们将深入探讨Java Socket编程的基础知识,以及如何结合HTML进行交互。 首先,Java Socket是TCP/IP协议族的一...
import java.io.*; import java.net.*; import java.util.*; import java.lang.*; public class Server extends ServerSocket { private static ArrayList User_List = new ArrayList(); private static ...
本文将深入探讨Java Socket编程的基础知识、关键概念以及如何在实践中应用。 一、Socket概述 Socket,也被称为套接字,是网络通信的端点,可以理解为两个应用程序之间的连接通道。在Java中,Socket类(java.net....
Java Socket 编程在计算机网络实验中的应用 Java Socket 编程是计算机网络实验中的一个重要组成部分,它允许开发者创建可以在网络上传输数据的应用程序。下面是关于 Java Socket 编程在计算机网络实验中的应用的...
在Java中,Socket编程主要是基于TCP/IP协议的网络编程。 网络编程的两个主要问题 在网络编程中,有两个主要的问题需要解决:一是如何准确地定位网络上的一台或多台主机,二是找到主机后如何可靠高效地进行数据传输...
Java Socket 编程:文件传输 Java Socket 编程是 Java 语言中的一种网络编程技术,用于实现客户端和服务器端之间的数据传输。文件传输是 Java Socket 编程中的一种常见应用场景,通过建立客户端和服务器端之间的...
本文将通过一个具体的Java Socket编程实例来深入探讨如何使用Java实现客户端与服务端之间的通信。 #### 二、基础知识概述 在开始具体实例之前,我们需要了解一些基本概念: - **Socket**:Socket是一种用于在网络...
Java Socket编程是网络编程的基础,它提供了在Java中进行低级网络通信的接口。Socket是TCP/IP协议族的一部分,用于实现客户端与服务器之间的双向通信。在这个"java TCP_IP Socket 编程"源码中,我们可以深入理解...
学习这些Java Socket编程实例,有助于理解TCP/IP通信的基本原理,为构建实际的网络应用程序打下坚实的基础。你可以通过调试和修改`SocketTest`代码,进一步探索和实践Socket编程的不同场景,如文件传输、聊天应用等...
Java Socket编程是网络编程的基础,它是Java平台中用于实现客户端-服务器通信的关键组件。本教程将深入浅出地探讨Java Socket编程的核心概念和技术,帮助开发者理解如何构建可靠的网络应用程序。 一、Socket概述 ...
异常处理在Java Socket编程中扮演着重要角色。主要涉及四种异常类型: 1. `UnknownHostException`: 表示主机名或IP地址无法解析,通常是因为网络不可达或者主机名不存在。 2. `ConnectException`: 当尝试连接到...
Java Socket编程是网络编程的一个重要部分,它允许在网络中的计算机之间进行数据交换。Socket编程是基于TCP/IP协议的,因此了解计算机网络、分组报文和协议对于掌握Socket编程来说至关重要。接下来,我将详细解释...
在Java中,Socket编程主要涉及两个关键类:`ServerSocket`和`Socket`。`ServerSocket`类用于服务器端,它监听指定端口的连接请求。创建一个`ServerSocket`实例,例如`ServerSocket server = new ServerSocket(9998);...
在Java中,Socket编程是实现网络通信的基础,它提供了进程间通信的能力,使得两个相隔万里的计算机可以通过互联网进行数据交换。本篇文章将深入讲解如何通过三步学习Java Socket编程。 **第一步:理解Socket** ...
本教程将深入探讨Java Socket编程的核心概念,以及如何利用它进行网络通信。 1. **Java Socket基础** - **Socket的概念**:Socket是网络通信中的一个端点,可以理解为两台机器间通信的桥梁。在Java中,Socket类...