Socket编程

Socket 简介与 Java Socket 编程示例 基本概念:Socket可以被视为网络环境中进程间通信的API(应用程序编程接口),也是可以被命名和寻址的通信端点。它是应用程序通过网络协议进行通信的接口,上联应用进程,下联网络协议栈。物理与逻辑层面:在物理层面上,Socket可能并不真实存在,它更多的是一个逻辑上的概念。但在网络编程中,Socket是不可或缺的组成部分。Socket是网络通信中的核心组件之一,它提供了应用层进程之间进行数据交换的机制。通过Socket,不同主机上的应用进程可以建立连接并传输数据。 阅读详情
  • TCP
    这里写图片描述
    服务段:
import socket

# 创建一个socket对象
# 默认参数:AF_INET时ipv4,SOCK_STREAM是指面向流TCP协议
with socket.socket() as s:
    # 绑定一个ip和端口
    s.bind(("192.168.122.1", 6874))

    # 监听服务器
    s.listen()
    print('接收信息中...')

    # 接收 s.accpet()返回两个值clientsocket是套接字对象,可以用来接收和发送数据,address是客户端ip和端口

    clientsocket, address = s.accept()

    # 解析信息
    with clientsocket:
        while True:
            info = clientsocket.recv(1024).decode('utf-8')
            print('接收到客户端信息:{}'.format(info))

            # 给客户端寄信息

            clientsocket.send(input(">>").encode())

客户端:

import socket

#创建一个socket对象
with socket.socket() as s:

    #远程连接服务器,ip和端口必须和服务器一致
    s.connect(('192.168.122.1',6874))

    #进行通信,给服务端发送信息
    while True:
        #发送
        s.send(input('>>').encode())
        #接收
        info=s.recv(1024).decode('utf-8')

        print('来自服务端的信息:{}'.format(info))

这里写图片描述

这里写图片描述

  • UDP
    不需要在服务端监听

服务端:

import socket


HOST = '192.168.122.1'
PORT = 9678
server = socket.socket(family=socket.AF_INET, type=socket.SOCK_DGRAM)
# 绑定端口:
server.bind((HOST, PORT))

# 不需要调用监听方法
print('等待客户端的请求.....')

while True:
    # 接收客户端的数据
    data, addr = server.recvfrom(1024)
    print("接收到客户端的信息:", data.decode('utf-8'))
    recv_data = input("server>>").encode()
    server.sendto(recv_data, addr)

客户端:


import socket

client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
address = ('192.168.122.1', 9678)

while True:
    msg = input('client>>')
    msg = msg.encode()
    client.sendto(msg, address)
    print("接收到服务端的消息:", client.recv(1024).decode('utf-8'))
【Java TCP/IP Socket】Socket编程大合集 为了方便各位网友学习以及方便自己复习之用,将Java TCP/IP Socket编程系列内容按照学习顺序总结如下: 【Java TCP/IP Socket】Java TCP Socket程编程 【Java TCP/IP Socket】Java UDP Socket编程 【Java TCP/IP Socket】应用程序协议中消息的成帧与解析 【Java TCP/IP Socket】构建和解析自定义协议消息 【Java TCP/IP Socket】基于线程池的TCP服务器 【Java TCP/IP 阅读详情

相关推荐

流式Socket编程

流式Socket编程 1、实现基于流式套接字的网络功能框架,包括客户端与服务端两个部分(以类的形式); 2、在第一步的基础上,实现服务器/客户端之间的回射功能; 3、改进服务端程序,使其支持多线程,即为每个客户端请求创建一个服务线程; 客户端 // EchoTCPClientDemo.cpp : 定义控制台应用程序的入口点。 #include "stdafx.h" #define WIN32_LE...

weixin_43136689的博客 1416

socket编程(一)使用SOCK_STREAM建立可靠通信

socket是我们用来进行网络编程的基本API,一般系统都提供了socket,unix以及类unix(Linux、mac)它们都提供了socket,不过不同平台还是有那点区别的,其中Windows区别最大了。本文的代码是在mac上测试通过的。 socket是一个应用层编程API,提供了tcp/ip四层模型的第三层网络层的TCP、UDP协议的数据传输方式。第二层网际层有IP协议,它本来是不可靠的协

追求游戏之道 2万+

Activex的socket插件实例

主要转自 标准MFC WinSock ActiveX控件开发实例:http://www.vckbase.com/document/viewdoc/?id=1883和标准MFC WinSock ActiveX控件开发实例(II)高级篇:http://www.vckbase.com/document/viewdoc/?id=1884,包括从网上搜集到的和自己开发的几个示例,有这方面需要的开一下载

java 套接字 阻塞_深入分析Java Socket 原理之阻塞套接字

0、套接字(Socket)介绍0.1 套接字是什么?套接字类似于unix中的管道,我们既可以往里面写数据(套接字发送缓冲区),也可以从中读取数据(套接字接收缓冲区);套接字工作在传输层与应用层之间,主要是为应用程序提供网络I/O的能力;Sockets API通过套接字描述符去定位要访问套接字文件; 比如说要写入的套接字的套接字描述符为5,那程序便可以通过描述符5去访问这个套接字文件。0.2 简单的...

weixin_32652003的博客 366

AutoCAD二次开发(.Net)之XData

对于CAD中的实体进行筛选等操作,常常会用到实体的XData属性,下面介绍一下实体的XData的增删改。 //XData的新增,修改跟新增一样,new一个ResultBuffer,赋值即可 Document doc=Application.DocumentManager.MdiActiveDocument; using (DocumentLock dl = doc.LockDocument()) { using (Transaction trans = doc.TransactionManager.S.

qq_21489689的博客 2593

sram设计流程+memory compiler整理

→。

qq_50761108的博客 1万+

利用socket实现python和java通信

python java 通信

vive921的博客 889

物料主数据管理难在哪?基于AI算法的数据清洗工具了解一下

企企通打造的一套以AI模型和算法为核心的产品及服务,可针对各类企业的不同主数据痛点难点,提供多种解决方案,能够快速完成物料主数据清洗、识别、匹配、梳理,满足一物一码、分类梳理、一品多商、多维度比价、精准寻源选品、建立标准物料库、供应商及客户主数据清洗等业务场景需求。随着AI技术的快速发展,智能算法在数据清洗领域的应用越来越广泛,越来越多的数据清洗工作已经开始交由智能算法完成,通过自动化的方式处理大量数据,识别和纠正错误,填补缺失值,检测异常值,以及执行其他数据预处理任务,并提高效率并减少人为错误。

QQT_qqt的博客 1364

java socket 之 Stream Socket(TCP/IP)

 Stream Socket一  总述Stream Socket与Datagram Socket不同,它有一个永久性的链接,可以确保数据可靠的发送到对方。但是Stream Socket所占的资源更多。Java主要通过Socket及ServerSocket来实现Stream Socket,一个用于客户端,另一个用户服务器端。 二  Socket类Socket类的几个重要方

4362

从零开始:使用Labelme完成图像语义分割标注全流程

本文详细介绍了如何使用Labelme工具完成图像语义分割标注的全流程,从环境安装、数据准备到核心标注操作,并重点讲解了如何将标注结果转换为PASCAL VOC等深度学习框架可用的标准数据集格式。文章还提供了关键的避坑指南和高效技巧,帮助初学者快速上手,高效产出高质量的标注数据。

weixin_29073241的博客 492

雷光联动自动化标校方法

动态标校需要利用动目标,在雷达和光电同时看到目标时记录光电的方位、俯仰,以及利用雷达给的目标信息计算的方位俯仰,手动记录两者的数值,多方位,多距离段记录,费时费力,且人工记录数据不全,计算容易出差错,耗费成本和精力太大。目标相距设备的水平距离 = acos(cos(设备纬度弧度值) * cos(目标纬度弧度值) * cos(设备经度弧度值 – 目标经度弧度值) + sin(设备纬度弧度值) * sin(目标纬度弧度值)) * 6378137;本发明涉及光电技术领域,安防领域,尤其涉及雷达光电动态标校等。

u013358093的博客 1580

socket/io(1)、Linux的socket编程详解

Linux的SOCKET编程详解 1. 网络中进程之间如何通信 进 程通信的概念最初来源于单机系统。由于每个进程都在自己的地址范围内运行,为保证两个相互通信的进 程之间既互不干扰又协调一致工作,操作系统为进程通信提供了相应设施,如 UNIX BSD有:管道(pipe)、命名管道(named pipe)软中断信号(signal) UNIX system V有:消息(mes......

黄规速博客:学如逆水行舟,不进则退 34万+

Minecraft Forge模组开发入门:从环境搭建到事件监听实战

事件驱动编程是一种基于事件和事件监听器的软件架构模式,其核心原理是通过事件总线实现组件间的松耦合通信。在游戏开发领域,这种模式能够有效处理玩家交互、状态变更等异步操作,具有高度的灵活性和可扩展性。Java作为面向对象编程语言,通过注解和反射机制为事件驱动提供了天然支持。Minecraft模组开发正是事件驱动编程的典型应用场景,开发者可以利用Forge框架提供的事件总线监听游戏内各种行为。本文以Minecraft Forge模组开发为例,详细讲解如何通过Gradle构建工具搭建开发环境,并实现自定义方块注册和

culi3182的博客 395

Socket编程详解

Socket中文意思是“插座”,在Linux环境下,用于表示进程x间网络通信的特殊文件类型。本质为内核借助缓冲区形成的伪文件。既然是文件,那么理所当然的,我们可以使用文件描述符引用套接字。Linux系统将其封装成文件的目的是为了统一接口,使得读写套接字和读写文件的操作一致。区别是文件主要应用于本地持久化数据的读写,而套接字多应用于网络进程间数据的传递。在TCP/IP协议中,“IP地址+TCP或UDP端口号”唯一标识网络通讯中的一个进程。“IP地址+端口号”就对应一个socket。欲建立连接的两个进程各自有一

qq_51654808的博客 2万+

IAR下载Linux环境适配:入门级安装指导

详细介绍如何在Linux系统中完成iar下载与环境配置,帮助开发者快速上手IAR集成开发环境,解决常见安装问题,提升开发效率。

weixin_35754676的博客 762

【车载以太网】Eth Stack Bringup

摘要:本文基于AUTOSAR架构,详细介绍了在TC3xx硬件平台上实现EthStack Bringup的全过程。作者通过配置MCAL和Davinci工具,完成了EthTrcv、Eth、EthIf、EthSM和TcpIp等模块的集成,并解决了16字节内存对齐和以太网速率不匹配等问题。最终实现了PC端与开发板的Ping通,并通过WireShark验证了数据包收发。文章总结了调试中的关键问题与解决方案,强调了实践的重要性,为后续EthStack的深入分析奠定了基础。

qq_36056498的博客 182

Raw Socket和Socket编程

 1.原始套接字(raw socket)  1.1 原始套接字工作原理与规则         原始套接字是一个特殊的套接字类型,它的创建方式跟TCP/UDP创建方法几乎是一摸一样,例如,通过CODE:[Copy to clipboard]       int sockfd;       sockfd = socktet(AF_INET, SOCK_RAW, IPPROTO_

KZM2008的专栏 3万+

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

socket编程

socket编程——一个简单的例子转载 2016年10月16日 00:29:26标签:socket网络编程13475转载自:网络中进程之间如何通信什么是Socketsocket一词的起源socket的基本操作31socket函数32bind函数网络字节序与主机字节序33listenconnect函数34accept函数35readwrite等函数36close函数socket中TCP的三次握手建立...

hql946233586的博客 1852

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

C++ socket编程

概要: sockets(套接字)编程有三种,流式套接字(SOCK_STREAM),数据报套接字(SOCK_DGRAM),原始套接字(SOCK_RAW);基于TCP的socket编程是采用的流式套接字。 服务器端编程的步骤: 1:加载套接字库,创建套接字(WSAStartup()/socket()); 2:绑定套接字到一个IP地址和一个端口上(bind()); 3:将套接...

残花织梦的博客 8872

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Java的Socket编程

  java.net包中提供了UDP和TCP这两种常见的网络协议的支持。 Socket编程   套接字使用TCP提供了两台计算机之间的通信机制。客户端程序创建一个套接字,并尝试连接服务器的套接字。当连接建立时,服务器会创建一个Socket对象。客户端和服务器现在可以通过对Socket对象的写入和读取来进行通信。   java.net.Socket类代表一个套接字,并且java.net.ServerSocket类为服务器程序提供了一种来监听客户端,并与它们建立连接的机制。   以下步骤在两台计算机之间使用套接

健身房 3895

golang socket编程

在大学的时候,曾经修过一门课《网络原理》,其中就花很大的篇幅讲过TCP/IP四层网络协议(OSI的七层网络协议可以映射到这个四层协议上来),也讲过HTTP协议、socket编程。但是讲的东西多了,总有一种云里雾里的感觉,而且也没能很好的了解其中的关联。这里就和大家一起梳理一下,上述几个概念之间的关系,并通过golang实现socket编程。 1. 基础概念 1.1 TCP/IP协议 TCP/...

卓立的博客 6557

【Linux】SOCKET编程

传统的进程间通信借助内核提供IPC机制进行,但是只能限制于本机通信,若要进行跨机通信,就要使用网络通信。​ 网络通信的本质是借助内核提供SOCKET伪文件的机制进行通信,实际上是使用了文件描述符,因此需要使用内核提供的socketAPI函数库(在传输层层面进行)。

Demok123的博客 3199

什么是SOCKET编程?在PHP中如何实现SOCKET通信?

SOCKET编程是一种网络编程方式,它允许程序通过网络(如Internet)或本地机器(如Unix域套接字)进行通信。SOCKET可以看作是网络通信的一个端点,通过它,程序可以发送和接收数据。SOCKET编程提供了低级的网络通信接口,使得程序员可以直接控制网络数据流。SOCKET编程是一种基础但强大的网络编程技术,它允许程序通过网络进行直接通信。在PHP中,可以使用内置的socket_*函数来实现SOCKET编程,创建服务器端和客户端进行通信。

长风破浪会有时的博客 1632

Socket编程指南及示例程序

1         前言在一些常用的编程技术中,Socket网络编程可以说是最简单的一种。而且Socket编程需要的基础知识很少,适合初学者学习网络编程。目前支持网络传输的技术、语言和工具繁多,但是大部分都是基于Socket开发的,虽说这些“高级”的网络技术屏蔽了大部分底层实现,号称能极大程度的简化开发,而事实上如果你没有一点Socket基础,要理解和应用这些技术还是很困难的,而且会让你成为“

sdhfll的专栏 3176
上一篇: 正则表达式
下一篇: 协程
wl_python
博客等级 码龄9年 21粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值