`

socket 的使用

 
阅读更多



     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
分享到:
评论

相关推荐

    c++ socket使用源代码

    5. **接收和发送数据**:通过新创建的Socket使用`recv()`和`send()`函数进行数据的接收和发送。 6. **关闭Socket**:通信完成后,使用`closesocket()`函数关闭Socket。 **客户端编程** 1. **创建Socket**:客户端...

    java socket使用加密协议传输对象

    ### Java Socket 使用加密协议传输对象:深入解析与实践 在当今互联网时代,数据安全成为企业和个人用户关注的焦点。在Java开发中,Socket编程是一种常见的网络通信方式,它允许不同计算机上的应用程序通过网络进行...

    Java Socket使用实例

    在这个“Java Socket使用实例”中,我们将探讨如何创建一个简单的Java Socket应用,它包括一个服务器端和一个客户端,两者通过Socket进行数据交换,将信息显示在窗口中。 首先,让我们了解Socket的基本概念。Socket...

    同事封装的socket使用

    "同事封装的socket使用"这个标题表明,我们有一份关于IPv4套接字编程的封装代码,它已经过长时间的测试和验证,确保了稳定性和可靠性。 Socket,又称为“套接字”,是计算机网络中的进程间通信(IPC)接口,它允许...

    iOS Socket 使用Demo

    本示例“iOS Socket 使用Demo”将介绍如何使用GCDAsyncSocket库来构建一个简单的Socket应用,并解决丢包问题。 首先,我们需要了解Socket的基本概念。Socket是网络通信中的一个端点,它提供了进程间通信(IPC)的...

    socket用法

    这些参数分别指定了Socket使用的地址族、类型以及协议类型。 1. **地址族**(`AddressFamily`):确定Socket可以使用的地址类型,如`InterNetwork`(用于IPv4)或`InterNetworkV6`(用于IPv6)。 2. **类型**(`...

    Qt socket使用实例

    本篇将详细探讨"Qt socket使用实例",特别是如何使用Qt中的socket功能来实现TCP协议的网络通信。 Qt是一个跨平台的C++图形用户界面应用程序开发框架,它包含了一系列用于网络编程的类,如`QTcpSocket`、`QUdpSocket...

    Socket使用 手机做服务端客户端 电脑做客户端服务端代码

    以上就是关于"Socket使用 手机做服务端客户端 电脑做客户端服务端代码"的相关知识,实际应用中,还需考虑网络环境、安全策略、性能优化等因素。通过Socket编程,可以实现跨平台、灵活的网络应用,如聊天应用、文件...

    python中关于网络socket使用实例,供大家参考使用

    本篇将详细解析Python中的Socket使用,旨在为开发者提供实用的参考实例。 首先,我们需要了解Socket的基本概念。Socket在计算机网络中扮演着桥梁的角色,它允许两台计算机通过网络进行数据交换。在Python中,`...

    socket使用案例,简单demo,易懂

    在这个“socket使用案例,简单demo,易懂”的示例中,我们将探讨如何创建一个基本的客户端-服务器通信模型,通过Socket进行数据交换。 首先,我们需要了解Socket的基本概念。Socket可以看作是两台计算机之间通信的...

    java对Socket进行了封装,可以通过注解调用双端的方法,让socket使用起来极其简单方便,是一个jar包

    因为发现socket使用起来比较的麻烦,尤其是数据的处理。所以我对socket进行了封装,客户端和服务端可以通过配置注解,让双方相互调用注解方法,提供了专门的工具类,让注解方法可以支持返回list或map等集合或其他的...

    C# Socket使用

    本文将深入探讨在C#环境中如何使用Socket进行TCP通信,基于给出的标题“C# Socket使用”和描述“基于C#语音编制的socket通信demo,socket采用长连接方式,进行聊天通信!”来详细阐述相关知识点。 首先,Socket是...

    c#使用Socket发送HTTP/HTTPS请求的实现代码

    使用Socket可以实现高效的网络通信,适用于实时性和可靠性要求高的应用场景。 HTTP/HTTPS请求 HTTP/HTTPS是两种常用的网络协议,分别用于超文本传输和安全超文本传输。HTTP是基于TCP/IP协议的无状态请求/响应式...

    HP-Socket文档

    HP-Socket 提供了大量的 Demo 示例如:PUSH 模型示例、PULL 模型示例、PACK 模型示例、性能测试示例以及其它编程语言示例,以便让使用者能方便快速地学习和使用 HP-Socket。 HP-Socket 的特点 * 高性能:HP-Socket...

    Python3的socket使用方法详解

    在本文中,我们将深入探讨Python3的socket使用方法,通过具体的示例代码来展示如何在两台机器之间实现信息交互。 首先,让我们了解socket的基本概念。在计算机网络中,socket是一种进程间通信机制,允许运行在不同...

    socket使用

    总之,Socket编程是构建网络应用的基础,熟练掌握Socket的使用方法和原理,对于任何IT从业者,尤其是网络开发者来说,都是至关重要的技能。通过不断学习和实践,你将能够自如地应对各种复杂的网络通信场景。

    java socket连接池 实现

    为了解决这个问题,开发人员通常会使用连接池来管理和复用已建立的Socket连接。 首先,我们来看一下Socket的基本概念。Socket是网络编程中的一个抽象概念,它代表了两台机器间的一个双向通信链路。在Java中,`java...

    android 2.3以后的socket注意

    对于敏感数据传输,应使用SSL/TLS加密的Socket(即SSLSocket)以保证通信安全。 综上所述,Android 2.3及更高版本对Socket通信提出了更高的要求,开发者需要遵循最佳实践,确保网络操作在合适的线程中执行,并正确...

    mina框架中socket使用,有服务端和客户端。

    MINA框架中的Socket服务端和客户端通过Socket接口实现数据的发送和接收,服务端创建监听Socket,等待客户端的连接请求;客户端则通过Socket连接到服务端,进行数据交互。 3. **服务端实现**:在MINA中,服务端通常...

    C++多线程SOCKET收发

    2. 创建SOCKET:使用`socket`函数创建一个SOCKET句柄。 3. 绑定:`bind`函数将SOCKET与IP地址和端口号关联。 4. 监听:`listen`函数使SOCKET进入监听状态,等待连接请求。 5. 接受连接:`accept`函数接收客户端的...

Global site tag (gtag.js) - Google Analytics