server:

import socket as s
import threading as t
bind_ip = "0.0.0.0"
bind_port = 80
#配置服务器监听的IP地址和端口号,这里为缺省配置,默认接收来自所有的ip发送到80端口的信息

server = s.socket(s.AF_INET,s.SOCK_STREAM)
#确定套接字的连接类型和连接依据的类型

server.bind((bind_ip,bind_port))
#确定服务的监听的端口和ip并开始启动监听

server.listen(5)
#配置服务的最大连接数量

print ("[*]Listening on %s:%d" % (bind_ip,bind_port))

#该函数为处理客户端的线程
def handle_client(client_socket):
request = client_socket.recv(1024)
  #将recv()函数之后的信息发送到客户端

  print "[*]Receoved:%s"% request
  client_socket.send("ACK+1")
  #返还ACK+1的内容到client
  client_socket.close()
while True:
  client , addr = server.accept()
  #将接收到的客户端套接字对象保存到client变量里,将远程的细节保存到addr中

  print ("[*] Accepted connection from:%s:%d" % (addr[0],addr[1]))
  client_handler = t.Thread(target=handle_client,args = (client,))
  #以client_handle函数为回调函数创建一个新的线程对象,将客户端套接字作为一个句柄传递给它

  client_handler.start
  #启动client_handler

client:

import socket as s
target_host = "192.168.66.6"
target_port = 80
client = s.socket(s.AF_INET,s.SOCK_STREAM)
#建立一个socket对象

client.connect((target_host,target_port))
#连接server

client.send("Bydream")
#发送一些数据(Bydream)

response = client.recv(80)
#接收一些数据

server和client的测试验证

TCP的client和server的简单连接的更多相关文章

  1. asyncio标准库5 TCP echo client and server

    server import asyncio async def handle_echo(reader, writer): data = await reader.read(100) message = ...

  2. go http client, http server

    Go语言中的HTTP client, server非常简单.具体如下. HTTP Server package main import ( "fmt" "html&quo ...

  3. ESP8266 station模式下建立client、server TCP连接

    程序实现内容: 1.在station模式下,ESP8266作为client.server进行TCP连接2.实现数据的发送.接收(同时回传)实现思路:TCP网络通信分层为:应用层.网络层.数据链路层.物 ...

  4. Android简单的聊天室开发(client与server沟通)

    请尊重他人的劳动成果.转载请注明出处:Android开发之简单的聊天室(client与server进行通信) 1. 预备知识:Tcp/IP协议与Socket TCP/IP 是Transmission ...

  5. C#使用 SSL Socket 建立 Client 与 Server 连接

    当 Client 与 Server 需要建立一个沟通的管道时可以使用 Socket 的方式建立一个信道,但是使用单纯的 Socket 联机信道可能会担心传输数据的过程中可能被截取修改因而不够安全,为了 ...

  6. 并发编程概述 委托(delegate) 事件(event) .net core 2.0 event bus 一个简单的基于内存事件总线实现 .net core 基于NPOI 的excel导出类,支持自定义导出哪些字段 基于Ace Admin 的菜单栏实现 第五节:SignalR大杂烩(与MVC融合、全局的几个配置、跨域的应用、C/S程序充当Client和Server)

    并发编程概述   前言 说实话,在我软件开发的头两年几乎不考虑并发编程,请求与响应把业务逻辑尽快完成一个星期的任务能两天完成绝不拖三天(剩下时间各种浪),根本不会考虑性能问题(能接受范围内).但随着工 ...

  7. TCP/UDP通信中server和client是如何知道对方IP地址的

    在TCP通信中 client是主动连接的一方,client对server的IP的地址提前已知的.如果是未知则是没办法通信的. server是在accpet返回的时候知道的,因为数据包中包含客户端的IP ...

  8. tcp 服务端如何判断客户端断开连接

    一篇文章:   最近在做一个服务器端程序,C/S结构.功能方面比较简单就是client端与server端建立连接,然后发送消息给server.我在server端会使用专门的线程处理一条socket连接 ...

  9. TCP/IP、Http、Socket 简单理解

    转自:http://blog.csdn.net/guyan0319 https://blog.csdn.net/guyan0319/article/details/79404216 一. 什么是TCP ...

随机推荐

  1. Flutter Demo: 径向菜单动画

    video import 'dart:math'; import 'package:flutter/material.dart'; import 'package:vector_math/vector ...

  2. NGK公链生态所如何保障用户的数字资产隐私安全?

    距离NGK生态所正式上线已经没剩下几天时间了,NGK全网算力总量正在持续猛增,NGK日活账户也在大幅度增多.可以看出,币圈的生态建设者们是十分看好NGK生态所的.那么,有这么多的生态建设者涌入NGK生 ...

  3. Baccarat凭什么能成为DeFi后时代火爆新趋势?

    在各币种经历涨涨跌跌以后,DeFi后时代已然来临.那么,当前DeFi市场中哪个项目更被市场生态建设者看好呢?毫无疑问,Baccarat会成为最被看好的DeFi项目. Baccarat采用了独特的共识算 ...

  4. 死磕Spring之IoC篇 - 深入了解Spring IoC(面试题)

    该系列文章是本人在学习 Spring 的过程中总结下来的,里面涉及到相关源码,可能对读者不太友好,请结合我的源码注释 Spring 源码分析 GitHub 地址 进行阅读 Spring 版本:5.1. ...

  5. 随手一记,关于Java日期时间格式化

    在Java中,我们大多数情况下格式化日期都是使用simpleDateFormat,比如把一个日期格式化成:2019-12-31的形式,我们一般定义模板为:yyyy-MM-dd的形式. 我们需要注意的是 ...

  6. IDEA中引用不到HttpServlet的解决方案

    原文链接:https://blog.csdn.net/xiaozaizi666/article/details/87805564

  7. Maven报错:Unsupported major.minor version 51.0

    这个错误时因为JDK版本的问题,比如本机的JDK为1.6,但是项目编译时用的JDK为1.7那么就会出现这个异常,因为本机JDK版本较低不能执行编译版本为高版本的Class文件,各JDK版本对应的错误编 ...

  8. event loop整理

    宏任务和微任务 让我们从浏览器加载 script 说起,当浏览器加载完 script 之后,不考虑 script 标签的 defer 属性,script 将被立即执行.这时,我们就创建了一个宏任务. ...

  9. Python高级——多任务编程之线程

    转: Python高级--多任务编程之线程 文章目录 线程概念 1. 线程的介绍 2. 线程的概念 3. 线程的作用 多线程的使用 1. 导入线程模块 2. 线程类Thread参数说明 3. 启动线程 ...

  10. 9.Vue之webpack打包基础---模块化思维

    主要内容: 1. 什么是模块化思维? 2.  ES6包的封装思想 一.什么是模块化思维呢? 现实工作中, 一个项目可能会有多个人同时开发. 然后, 将所有人开发的内容, 合并到一个文件中. 比如: 1 ...