就业DAY2_网络编程_tcp客户端及服务器

from socket import *
import socket
def main():
    # 创建tcp套接字
    tcp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    # 链接服务器
    # tcp_socket.connect(("10.6.25.79", 8080))
    server_ip = input("请输入需要链接服务器的IP:")
    server_port = int(input("请输入需要链接服务器的port:"))
    server_addr = (server_ip, server_port)
    tcp_socket.connect(server_addr)
    # 发送数据
    send_data = input("请输入发送的数据:")
    tcp_socket.send(send_data.encode("gbk"))
    # 关闭套接字
    tcp_socket.close()

if __name__ == "__main__":
    main()
from socket import *
import socket
def main():
    # 买个手机-创建tcp套接字
    tcp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

    # 插入手机卡-绑定
    tcp_socket.bind(("", 7890))

    # 将手机设置为正常的响铃模式(让默认的套接字由主动变为被动listen)
    tcp_socket.listen(128)

    print("-----1-----")
    # 等待别人的电话到来(等待客户端的链接 accept)
    client_socket, client_addr = tcp_socket.accept()
    print("-----2-----")
    # print(client_socket)
    print(client_addr)

    # 接收客户端发送来的请求
    recv_data = client_socket.recv(1024)
    print(recv_data.decode("gbk"))

    # 回送一部分数据给客户端
    client_socket.send("哈哈".encode("gbk"))

    # 关闭套接字
    tcp_socket.close()
    client_socket.close()

if __name__ == "__main__":
    main()
from socket import *
import socket
def main():
    # 买个手机-创建tcp套接字
    tcp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

    # 插入手机卡-绑定
    tcp_socket.bind(("", 7890))

    # 将手机设置为正常的响铃模式(让默认的套接字由主动变为被动listen)
    tcp_socket.listen(128)
    while True:
        print("等待一个新的客户端到来")
        # 等待别人的电话到来(等待客户端的链接 accept)
        client_socket, client_addr = tcp_socket.accept()
        # print(client_socket)
        print("一个新客户端来了%s" % str(client_addr))

        # 接收客户端发送来的请求
        recv_data = client_socket.recv(1024)
        print("客户端发过来的请求是:%s" % recv_data.decode("gbk"))

        # 回送一部分数据给客户端
        client_socket.send("哈哈".encode("gbk"))

        # 关闭套接字
        # 关闭accept返回的套接字,意味着不会再为这个客户端服务
        client_socket.close()
        print("已经服务完毕")
    # 如果将监听套接字关闭,那边会导致不能再次等待新客户端的到来,即XXX.accept就会失败
    tcp_socket.close()

if __name__ == "__main__":
    main()
from socket import *
import socket
def main():
    # 买个手机-创建tcp套接字
    tcp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

    # 插入手机卡-绑定
    tcp_socket.bind(("", 7890))

    # 将手机设置为正常的响铃模式(让默认的套接字由主动变为被动listen)
    tcp_socket.listen(128)
    while True:  # 循环为多个客户端服务
        print("等待一个新的客户端到来")
        # 等待别人的电话到来(等待客户端的链接 accept)
        client_socket, client_addr = tcp_socket.accept()
        # print(client_socket)
        print("一个新客户端来了%s" % str(client_addr))
        while True:  # 循环多次为同一个客户端服务
            # 接收客户端发送来的请求
            recv_data = client_socket.recv(1024)
            print("客户端发过来的请求是:%s" % recv_data.decode("gbk"))

            # 如果recv解堵塞,两个方式
            # 1 客户端发送过来数据
            # 2 客户端调用close导致了recev解堵塞
            if recv_data:
                # 回送一部分数据给客户端
                client_socket.send("哈哈".encode("gbk"))
            else:
                break

            # 关闭套接字
        # 关闭accept返回的套接字,意味着不会再为这个客户端服务
        client_socket.close()
        print("已经服务完毕")
    # 如果将监听套接字关闭,那边会导致不能再次等待新客户端的到来,即XXX.accept就会失败
    tcp_socket.close()

if __name__ == "__main__":
    main()

原文地址:https://www.cnblogs.com/joycezhou/p/11440215.html

时间: 2024-10-29 19:35:01

就业DAY2_网络编程_tcp客户端及服务器的相关文章

就业DAY2_网络编程_文件下载客户端及服务器

import socketdef main(): # 创建套接字 tcp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 获取服务器的ip port dest_addr = input("请输入服务器的ip:") dest_port = int(input("请输入服务器的port:")) # 链接服务器 tcp_socket.connect((dest_addr, dest_port)) #

Linux网络编程:客户端/服务器的简单实现

一. Socket的基本知识 1. socket功能 Socket层次 Socket实质上提供了进程通信的端点,进程通信之前,双方必须首先各自创建一个端点,否则是没有办法建立联系并相互通信的. 每一个Socket都一个半相关描述: {协议, 本地地址, 本地端口} 完整的Socket的描述: {协议, 本地地址, 本地端口, 远程地址, 远程端口} 2. Socket工作流程 面向连接(TCP)的Socket工作流程 UDP的socket工作流程 l 服务器端 首先,服务器应用程序用系统调用so

Java网络编程(tcp在服务器上应用多线程)

package org.tcp; import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.PrintStream; import java.net.Socket; public class EchoThread implements Runnable { private Socket client = null; public EchoThread(Socket client){ this.c

UNIX网络编程入门——TCP客户/服务器程序详解

前言 最近刚开始看APUE和UNP来学习socket套接字编程,因为网络这方面我还没接触过,要等到下学期才上计算机网络这门课,所以我就找了本教材啃了一两天,也算是入了个门. 至于APUE和UNP这两本书,书是好书,网上也说这书是给进入unix网络编程领域初学者的圣经,这个不可置否,但这个初学者,我认为指的是接受过完整计算机本科教育的研究生初学者,需要具有完整计算机系统,体系结构,网络基础知识.基础没打好就上来啃书反而会适得其反,不过对于我来说也没什么关系,因为基础课也都上得差不多了,而且如果书读

Java网络编程TCP程序,服务器和客户机交互流程以及基本操作步骤。

1.什么是网络编程 网络编程其实就是实现两个计算机的数据交换(交互). 可以通过直接或间接的通过网络协议与其他的计算机进行通讯.(HTTP协议,TCP/IP协议等) 2.Tcp网络编程的实现流程 主要分为服务器端(Server)和客户端(Client). 通过这个图我们其实就可以了解了实现服务器和客户机交互过程是怎么样的了. 实现这些原理最重要的是Socket类也叫做套接字.应用程序通常通过"套接字"向网络发出请求或者应答网络请求. 服务器端 1.首先创建ServerSocket对象并

unix网络编程各种TCP客户-服务器程序设计实例附环境搭建和编译方法(一)

一,到http://download.csdn.net/detail/ts173383201/4505201去下载源代码,然后解压: 二,cd到你解压后的文件夹下,就是有configure的那个目录下,执行命令./configure: 三,执行cd lib跳到lib目录下,执行make命令,会在上层目录(就是刚才有configure那个目录)生成libunp.a文件 四,复制这个静态库libunp.a到/usr/lib/和/usr/lib64/中; 五,接下来在目录中找到unp.h和config

《Python》网络编程之客户端/服务端框架、套接字(socket)初使用

一.软件开发的机构 我们了解的涉及到两个程序之间通讯的应用大致可以分为两种: 第一种是应用类:QQ.微信.网盘等这一类是属于需要安装的桌面应用 第二种是web类:比如百度.知乎.博客园等使用浏览器访问就可以直接使用的应用 这些应用的本质其实都是两个程序之间的通讯,而这两个分类又对应了两个软件开发的架构 1.C/S架构 C/S即:Client与Server,中卫意思:客户端与服务器端架构,这种架构也是从用户层面(也可以是物理层面)来划分的. 这里的客户端一般泛指客户端应用程序EXE,程序需要先安装

网络编程 实现 客户端与服务器端的简单通信

六,代码演示实现客户端与服务器端的简单通信 代码中所使用的 IP号码,必须是本机自己的IP号码 (自行查询:cmd---ipconfig/all ) 1.[客户端向服务器端 发送一个整型数据,服务器端进行接收] (1)先写服务器端 import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import java.net.ServerSocket; import java

05SockeT网络编程之客户端

1 using System; 2 using System.Collections.Generic; 3 using System.ComponentModel; 4 using System.Data; 5 using System.Drawing; 6 using System.Linq; 7 using System.Net; 8 using System.Net.Sockets; 9 using System.Text; 10 using System.Threading; 11 us