socket通信分为tcp和udp两种。
1、 Socket通信模型如下:
2、
UDP协议:
把数据打包成数据包,然后直接发送对应的ip地址,速度快,但是不保证成功率,并且数据大小有限
TCP协议:
首先连接接收方,然后发送数据,保证成功率, 速度慢
3、 TCP通信方式如下:
而UDP通信不使用InputStream和OutputStream
4、 UDP通信实现:
UDP使用DatagramSocket对象来实现,UDP的客户端代码实现如下:
public static void main(String[] args) {
try {
// 首先创建一个DatagramSocket对象
DatagramSocket socket = new DatagramSocket(4567);
// 创建一个InetAddree
InetAddress serverAddress = InetAddress.getByName("192.168.1.104");
String str = "hello"; // 这是要传输的数据
byte data[] = str.getBytes(); // 把传输内容分解成字节
// 创建一个DatagramPacket对象,并指定要讲这个数据包发送到网络当中的哪个、地址,以及端口号
DatagramPacket packet = new DatagramPacket(data, data.length,
serverAddress, 4567);
// 调用socket对象的send方法,发送数据
socket.send(packet);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
UDP的服务端代码实现如下:
// 创建一个DatagramSocket对象,并指定监听的端口号
DatagramSocket socket = new DatagramSocket(4567);
byte data[] = new byte[1024];
// 创建一个空的DatagramPacket对象
DatagramPacket packet = new DatagramPacket(data, data.length);
// 使用receive方法接收客户端所发送的数据,
// 如果客户端没有发送数据,该进程就停滞在这里
socket.receive(packet);
String result = new String(packet.getData(), packet.getOffset(),
packet.getLength());
System.out.println("result--->" + result);
5、 TCP通信的实现:
TCP使用Socket对象
TCP协议客户端实现:
// 创建一个Socket对象,指定服务器端的IP地址和端口号
Socket socket = new Socket("192.168.1.104", 4567);
// 使用InputStream读取硬盘上的文件
InputStream inputStream = new FileInputStream("f://file/words.txt");
// 从Socket当中得到OutputStream
OutputStream outputStream = socket.getOutputStream();
byte buffer[] = new byte[4 * 1024];
int temp = 0;
// 将InputStream当中的数据取出,并写入到OutputStream当中
while ((temp = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, temp);
}
outputStream.flush();
TCP协议服务器端现实:
//声明一个ServerSocket对象
ServerSocket serverSocket = null;
try {
//创建一个ServerSocket对象,并让这个Socket在4567端口监听
serverSocket = new ServerSocket(4567);
//调用ServerSocket的accept()方法,接受客户端所发送的请求,
//如果客户端没有发送数据,那么该线程就停滞不继续
Socket socket = serverSocket.accept();
//从Socket当中得到InputStream对象
InputStream inputStream = socket.getInputStream();
byte buffer [] = new byte[1024*4];
int temp = 0;
//从InputStream当中读取客户端所发送的数据
while((temp = inputStream.read(buffer)) != -1){
System.out.println(new String(buffer,0,temp));
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
serverSocket.close();
}
摘自他人博客,未经验证,但是觉得很好。
- 大小: 13.4 KB
- 大小: 16.7 KB
分享到:
相关推荐
5. **接收和发送数据**:通过新创建的Socket使用`recv()`和`send()`函数进行数据的接收和发送。 6. **关闭Socket**:通信完成后,使用`closesocket()`函数关闭Socket。 **客户端编程** 1. **创建Socket**:客户端...
### Java Socket 使用加密协议传输对象:深入解析与实践 在当今互联网时代,数据安全成为企业和个人用户关注的焦点。在Java开发中,Socket编程是一种常见的网络通信方式,它允许不同计算机上的应用程序通过网络进行...
在这个“Java Socket使用实例”中,我们将探讨如何创建一个简单的Java Socket应用,它包括一个服务器端和一个客户端,两者通过Socket进行数据交换,将信息显示在窗口中。 首先,让我们了解Socket的基本概念。Socket...
"同事封装的socket使用"这个标题表明,我们有一份关于IPv4套接字编程的封装代码,它已经过长时间的测试和验证,确保了稳定性和可靠性。 Socket,又称为“套接字”,是计算机网络中的进程间通信(IPC)接口,它允许...
本示例“iOS Socket 使用Demo”将介绍如何使用GCDAsyncSocket库来构建一个简单的Socket应用,并解决丢包问题。 首先,我们需要了解Socket的基本概念。Socket是网络通信中的一个端点,它提供了进程间通信(IPC)的...
这些参数分别指定了Socket使用的地址族、类型以及协议类型。 1. **地址族**(`AddressFamily`):确定Socket可以使用的地址类型,如`InterNetwork`(用于IPv4)或`InterNetworkV6`(用于IPv6)。 2. **类型**(`...
本篇将详细探讨"Qt socket使用实例",特别是如何使用Qt中的socket功能来实现TCP协议的网络通信。 Qt是一个跨平台的C++图形用户界面应用程序开发框架,它包含了一系列用于网络编程的类,如`QTcpSocket`、`QUdpSocket...
以上就是关于"Socket使用 手机做服务端客户端 电脑做客户端服务端代码"的相关知识,实际应用中,还需考虑网络环境、安全策略、性能优化等因素。通过Socket编程,可以实现跨平台、灵活的网络应用,如聊天应用、文件...
本篇将详细解析Python中的Socket使用,旨在为开发者提供实用的参考实例。 首先,我们需要了解Socket的基本概念。Socket在计算机网络中扮演着桥梁的角色,它允许两台计算机通过网络进行数据交换。在Python中,`...
在这个“socket使用案例,简单demo,易懂”的示例中,我们将探讨如何创建一个基本的客户端-服务器通信模型,通过Socket进行数据交换。 首先,我们需要了解Socket的基本概念。Socket可以看作是两台计算机之间通信的...
因为发现socket使用起来比较的麻烦,尤其是数据的处理。所以我对socket进行了封装,客户端和服务端可以通过配置注解,让双方相互调用注解方法,提供了专门的工具类,让注解方法可以支持返回list或map等集合或其他的...
本文将深入探讨在C#环境中如何使用Socket进行TCP通信,基于给出的标题“C# Socket使用”和描述“基于C#语音编制的socket通信demo,socket采用长连接方式,进行聊天通信!”来详细阐述相关知识点。 首先,Socket是...
使用Socket可以实现高效的网络通信,适用于实时性和可靠性要求高的应用场景。 HTTP/HTTPS请求 HTTP/HTTPS是两种常用的网络协议,分别用于超文本传输和安全超文本传输。HTTP是基于TCP/IP协议的无状态请求/响应式...
HP-Socket 提供了大量的 Demo 示例如:PUSH 模型示例、PULL 模型示例、PACK 模型示例、性能测试示例以及其它编程语言示例,以便让使用者能方便快速地学习和使用 HP-Socket。 HP-Socket 的特点 * 高性能:HP-Socket...
在本文中,我们将深入探讨Python3的socket使用方法,通过具体的示例代码来展示如何在两台机器之间实现信息交互。 首先,让我们了解socket的基本概念。在计算机网络中,socket是一种进程间通信机制,允许运行在不同...
总之,Socket编程是构建网络应用的基础,熟练掌握Socket的使用方法和原理,对于任何IT从业者,尤其是网络开发者来说,都是至关重要的技能。通过不断学习和实践,你将能够自如地应对各种复杂的网络通信场景。
为了解决这个问题,开发人员通常会使用连接池来管理和复用已建立的Socket连接。 首先,我们来看一下Socket的基本概念。Socket是网络编程中的一个抽象概念,它代表了两台机器间的一个双向通信链路。在Java中,`java...
对于敏感数据传输,应使用SSL/TLS加密的Socket(即SSLSocket)以保证通信安全。 综上所述,Android 2.3及更高版本对Socket通信提出了更高的要求,开发者需要遵循最佳实践,确保网络操作在合适的线程中执行,并正确...
MINA框架中的Socket服务端和客户端通过Socket接口实现数据的发送和接收,服务端创建监听Socket,等待客户端的连接请求;客户端则通过Socket连接到服务端,进行数据交互。 3. **服务端实现**:在MINA中,服务端通常...
2. 创建SOCKET:使用`socket`函数创建一个SOCKET句柄。 3. 绑定:`bind`函数将SOCKET与IP地址和端口号关联。 4. 监听:`listen`函数使SOCKET进入监听状态,等待连接请求。 5. 接受连接:`accept`函数接收客户端的...