套接字与套接字编程

一、套接字

端口:标记不同的网络进程;使用16位比特位表示。

{ IP : Port} ----- 来表示某一主机的具体进程是什么 ----  套接字(socket)

套接字:是抽象概念,表示TCP连接的一端;通过套接字可以进行数据的发送或接收

TCP连接由两个套接字组成:

TCP = { Socket1  : Socket2 }

   = {{ IP:Port } { IP:Port }}

一个IP可以有多个套接字。

套接字编程:

二、套接字编程

服务端(被动连接的一方)                                                  客户端(主动连接的一方)

// 服务端

import socket

def server():
    # 创建socket
    s = socket.socket()
    host = "127.0.0.1"
    port = 6666
    # 绑定套接字
    s.bind((host, port))

    # 监听
    s.listen(5)

    while True:
        c, addr = s.accept()
        print("Connect Addr:", addr)
        c.send("Welcome to my course.")
        c.close()

if __name__ = ‘__main__‘:
    server()

  

// 客户端

import socket

def client(i):
    # 创建套接字
    s = socket.socket()
    # 连接套接字
    s.connect((‘127.0.0.1‘, 6666))

    print(‘Recv msg: %s, Client: %d‘, %(s.recv(1024), i))
    s.close()

if __name__ == ‘__main__‘:
    for i in range(10):
        client(i)

  

原文地址:https://www.cnblogs.com/1220x/p/11762244.html

时间: 2024-11-25 17:49:20

套接字与套接字编程的相关文章

React Native是一套使用 React 构建 Native app 的编程框架

React Native at first sight what is React Native? 跟据官方的描述, React Native是一套使用 React 构建 Native app 的编程框架. 推出不久便引发了广泛关注, 这也得益于 JavaScript 开放而活跃的技术社区和 React Native 完备的技术体系支持. 本文试图概括的介绍 React Native. React Native 主要是一套 Runtime, 包括一套 React.js 库使得开发可以用 Reac

RDIFramework.NETV2.9版本 Web新增至14套皮肤风格+三套界面组合(共42套皮肤组合)

RDIFramework.NETV2.9版本 Web新增至14套皮肤风格+三套界面组合(共42套皮肤组合) 客户的心声是最重要的,RDIFramework.NET V2.9版本不仅对WinForm版做了大的调整,Web版也彻彻底底的底翻上的优化了一篇,不仅增加了很多的新功能.新特色,用户最期望的界面风格也进行了海量增加.全新改变.这次算对得起观众了!下面我们就展示下Web版本中的皮肤界面风格吧-! RDIFramework.NET ━ .NET快速信息化系统开发框架钜献 V2.9 版本震撼发布

Duang的成长——使用造字程序输入生僻字

使用造字程序输入生僻字 最近,一个字突然间火了起来,那就是--duang! (图片来自网络) 那么,问题来了!造字程序哪家强?(此处有掌声) 其实,微软早就考虑到各国文字的博大精深,在系统中集成了一个造字程序. 使用WinKey+R打开运行,输入"eudcedit"就能找到它啦~ 第一步,需要为创建的文字找一个家,也就是它的存放位置(对应的代码). 点击相应的位置即可(如AAA0)即可. 在接下来的窗口中,就可以直接选择不同的工具进行输入了,这些功能想必一看便知. 用鼠标手写汉字,难免

监听套接字 连接套接字

摘要:对于服务器编程中最重要的一步等待并接受客户的连接,那么这一步在编程中如何完成,accept函数就是完成这一步的.它从内核中取出已经建立的客户连接,然后把这个已经建立的连接返回给用户程序,此时用户程序就可以与自己的客户进行点到点的通信了. accept函数等待并接受客户请求: #include<sys/socket.h> int accept(int sockfd, struct sockaddr* addr, socklen_t* len) 返回:非负描述字——成功, -1——失败 ac

POJ 2155 树套树—线段树套线段树

Matrix 楼教主出的题目. 题意:一个矩阵初始值都为0,每次给"C X1 Y1 X2 Y2" 去反转这个矩阵.或者"Q X1 Y1"查询这个点是0/1. 第一次接触树套树的题目. 一句AC:对于基本的线段树,再在每个节点建一个y方向上的线段树.tree[n][m] 这道题目更新的时候,对于X方向就是(X1,X2)这个区间,再在其上对Y1,Y2进行更新. 对于查询,X方向上,自顶向下到X1都要对Y进行查询(更新的区间必包括该点),Y方向上则更新到Y1. #incl

java中如何知道一个字符串中有多少个字,把每个字打印出来,举例

(视频下载) (全部书籍) 9.6 About string,"I am a teacher",这个字符串中有多少个字,且分别把每个字打印出来. /*本题的思路就是,当我有一个字符串,我需要一个一个字符的处理,当下一个字符是个空格的时候,我就知道前面已 经构成了一个完整的字,把它输出出来就好了.如果发现下一个字符不是一个空格的话,我就把这个字符,加到另一个字符串中,逐渐积累那个字符串成为一个完整 的字.*/ public class Test {    static int amoun

Codeforces 780G Andryusha and Nervous Barriers 线段树套set || 线段树套单调栈

Andryusha and Nervous Barriers 问题本质我们只需要找出每个线段两端下面第一个碰到的是哪个线段就好啦. 按照 h 排序我们就能用线段树套set 不管维护什么都能维护出这个东西,但是 如果set里维护 u + s的话,就能优化成单调栈, 好优秀啊. #include<bits/stdc++.h> #define LL long long #define LD long double #define ull unsigned long long #define fi f

树套树-线段树套平衡树

树套树留坑 线段树套平衡树: 二逼平衡树 #include<iostream> #include<cstdio> #include<algorithm> #include<cstring> #include<vector> #include<cmath> #include<map> #include<bitset> #pragma GCC optimize(2) #define rep(i,a,b) for(i

bzoj3196 [TYVJ1730]二逼平衡树 树套树 线段树套ScapeGoat_Tree

人傻自带大常数 #include<cstdio> #include<cstring> #include<iostream> #define MAXN 1500005 using namespace std; const double A=0.756; const int inf=100000000; int n,m,a[50005]; struct ScapeGoat_Tree { ScapeGoat_Tree *ch[2]; int ex,cover,size,key