查找了许多资料,实现了客户端与服务器端的连接,通过虚拟机进行测试

服务器端IP:192.168.37.129 端口1122

客户端IP:  192.168.37.1 端口1122

Server:

#coding:utf-8
from socket import *
class Dserver():
    def __init__(self):
        self.HOST = '192.168.37.129'
        self.PORT = 1122
        self.BUFSIZE = 1024
        self.ADDR = (self.HOST, self.PORT)
        self.sock = socket(AF_INET, SOCK_STREAM)

        self.sock.bind(self.ADDR)
    def listener(self):

        self.sock.listen(5)

        STOP_CHAT = False
        while not STOP_CHAT:
            print('等待接入,侦听端口:%d' % (self.PORT))
            topClientSock, addr = self.sock.accept()
            print('接受连接,客户端地址:',addr[0])
            while True:
                try:
                    data = topClientSock.recv(self.BUFSIZE)
                except:
                    topClientSock.close()
                    print("服务器关闭!")
                    break
                if not data:
                    print("数据为空")
                    break
                s='把服务器收到的从%s发送给我的信息:%s 发回来' %(addr[0],data.decode('utf-8'))
                print(s)
                topClientSock.send(s.encode('utf-8'))

                print(data.decode('utf-8'))
                STOP_CHAT=(data.decode('utf-8').upper()=="QUIT")
                if STOP_CHAT:
                    break

        topClientSock.close()
        self.sock.close()
if __name__ == '__main__':
    serverDemo = Dserver()
    serverDemo.listener()

  Client:

#coding:utf-8
from socket import *
class Dclient():
    def __init__(self):
        self.HOST = '192.168.37.129'
        self.PORT = 1122
        self.BUFSIZE = 1024
        self.ADDR = (self.HOST, self.PORT)
    def listener(self):
        self.client = socket(AF_INET,SOCK_STREAM)
        self.client.connect(self.ADDR)

        while True:
            data = input('>')
            if not data:
                break
            self.client.send(data.encode('utf-8'))
            print('发送消息给%s: %s' % (self.HOST, data))
            if data.upper() == 'QUIT':
                break
            data = self.client.recv(self.BUFSIZE)
            if not data:
                break
            print('接受的消息  %s' % (data.decode('utf-8')))

if __name__ == '__main__':
    clientDemo = Dclient()
    clientDemo.listener()

测试数据:

python--DenyHttp项目(1)--socket编程:客户端与服务器端的更多相关文章

  1. Socket编程——客户端,服务器端的读写操作

    URL网络编程,最大的特征就是一对一的响应! 1:客户端“写”,服务器端用于“读” package coreBookSocket2; import java.io.InputStreamReader; ...

  2. Python之路,Day8 - Socket编程进阶

    Python之路,Day8 - Socket编程进阶   本节内容: Socket语法及相关 SocketServer实现多并发 Socket语法及相关 socket概念 socket本质上就是在2台 ...

  3. 【爬坑】Python 3.6 在 Socket 编程时出现类型错误 TypeError: a bytes-like object is required, not 'str'

    1. 问题描述 Python 3.6 在 Socket 编程时出现错误如下 Traceback (most recent call last): File "F:/share/IdeaPro ...

  4. Python(七)Socket编程、IO多路复用、SocketServer

    本章内容: Socket IO多路复用(select) SocketServer 模块(ThreadingTCPServer源码剖析) Socket socket通常也称作"套接字" ...

  5. Python网络编程之socket编程

    什么是Socket? Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口.在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面 ...

  6. Python socket编程客户端与服务端通信

    [本文出自天外归云的博客园] 目标:实现客户端与服务端的socket通信,消息传输. 客户端 客户端代码: from socket import socket,AF_INET,SOCK_STREAM ...

  7. python 基础(十五) socket编程

    SOCKET TCP协议: 有请求 有响应 称之为 tcp协议 是面向连接的协议 就是在收发数据之前 必须先要建立一个可靠的链接 三次握手 如:网站 UDP协议: 是一个非链接的协议 传输之前不需要键 ...

  8. Day8 - Python网络编程 Socket编程

    Python之路,Day8 - Socket编程进阶   本节内容: Socket语法及相关 SocketServer实现多并发 Socket语法及相关 socket概念 socket本质上就是在2台 ...

  9. 基于win32的socket编程及程序实现

    初步研究了win32平台的Windows Sockets,它是Microsoft Windows的网络程序设计接口,它是从Berkeley Sockets扩展而来的,以动态链接库的形式提供给我们使用. ...

  10. 读懂Java中的Socket编程

    Socket,又称为套接字,Socket是计算机网络通信的基本的技术之一.如今大多数基于网络的软件,如浏览器,即时通讯工具甚至是P2P下载都是基于Socket实现的.本文会介绍一下基于TCP/IP的S ...

随机推荐

  1. iOS获取WIFI的IP、子网掩码,以及域名转IP

    获取WIFI需要的头文件: #import "GetCurrentIP.h" #import <ifaddrs.h> #import <arpa/inet.h&g ...

  2. jquery判断按钮是否被选中了

    <script type="text/javascript"> function genjin_view2(elm){ if($(elm).attr("che ...

  3. 类间调用inline函数的效率

    问题描述: class A { public: int x, y, k, NY; inline int f(int i, int j, int k)  {return ((i)*(NY + 1) * ...

  4. 基于vue2.0的网易云音乐 (实时更新)

    本人在自学vue,之后想在学习过程中加以实践.由于之前有做过jquery的播放器效果,ui仿照网易云,地址 www.daiwei.org/music 于是就想做vue 的网易云播放器,网上也有类似的项 ...

  5. 错误代码是1130,ERROR 1130: Host xxx.xxx.xxx.xxx is not allowed to connect to this MySQL server 是无法给远程连接的用户权限问题

    错误代码是1130,ERROR 1130: Host xxx.xxx.xxx.xxx is not allowed to connect to this MySQL server 是无法给远程连接的用 ...

  6. MyEclipse2014web工程项目直接复制不能访问报错处理方案

    在学习web servlet项目中,做一个项目时 , 完成到了某一阶段 实现了部分功能,有必要保存这一项目,当复制这个项目之后发现发布会报错或者不能访问. 其实复制项目主要是为了在以后的学习中如果能顺 ...

  7. Hibernate使用注解进行ORM映射实例

    在上一篇博客中,我们通过xml配置文件进行实体类和表的映射,但是近两年来有更多的项目对一些比较稳定的实体类使用了注解进行ORM映射,这样使得编程更加简洁.简单.其实使用注解进行ORM映射和使用xml进 ...

  8. Tomcat7安装(linux环境)

    1.获取安装包 如果没有tomcat,则创建之,并下载二进制文件到该目录,如下: mkdir /opt/tomcat cd /opt/tomcat wget http://mirrors.hust.e ...

  9. c#编程-线程同步

    线程同步 上一篇介绍了如何开启线程,线程间相互传递参数,及线程中本地变量和全局共享变量区别. 本篇主要说明线程同步. 如果有多个线程同时访问共享数据的时候,就必须要用线程同步,防止共享数据被破坏.如果 ...

  10. php中curl的使用(一)

    cURL 是一个利用URL语法规定来传输文件和数据的工具,PHP的curl是通过libcurl库与服务器使用各种类型的协议,如HTTP.FTP.TELNET等. PHP curl函数 curl_clo ...