最基本的TCP套接字編程的實現

来源:https://www.cnblogs.com/pineapple-chicken/archive/2020/03/26/12577694.html

(來自《電腦網路:自頂向下方法》) 程式實現將小寫字母變為大寫 伺服器端: from socket import * serverPort = 12000 #創建一個伺服器埠 serverSocket = socket(AF_INET, SOCK_STREAM) #創建一個TCP套接字 serv ...


(來自《電腦網路:自頂向下方法》)

程式實現將小寫字母變為大寫

伺服器端:

from socket import *

serverPort = 12000   #創建一個伺服器埠
serverSocket = socket(AF_INET, SOCK_STREAM) #創建一個TCP套接字
serverSocket.bind(('', serverPort)) #關聯伺服器埠與套接字
serverSocket.listen(1) #伺服器監視用戶TCP連接請求,定義請求連接的最大數為1
print('The server is ready to receive')
while 1:
    connectionSocket, addr = serverSocket.accept() #在伺服器為每個連接用戶創建一個新的套接字
    sentence = connectionSocket.recv(1024) #接收客戶的發送的內容
    capitalizedSentence = sentence.upper()
    connectionSocket.send(capitalizedSentence) #將處理過後的內容發送給客戶
    connectionSocket.close()

客戶端:

from socket import *

serverName = 'xxx' #定義要連接的伺服器ip地址
serverPort = 12000 #定義要連接的埠號
clientSocket = socket(AF_INET, SOCK_STREAM) #創建一個TCP套接字
clientSocket.connect((serverName, serverPort)) #在用戶端和伺服器端創建一個TCP連接
sentence = input('Input lowercase sentence:')
clientSocket.send(sentence) #發送要處理的內容
modifiedSentence = clientSocket.recv(1024) #接收返回的內容
print('From Server:', modifiedSentence)
clientSocket.close()

客戶端實現:

在運行的過程中可能會報錯:socket error 10060 這是指在連接伺服器時出現錯誤,把伺服器的防火牆關掉可以連上


您的分享是我們最大的動力!

更多相關文章
  • 在前一篇文章中,我們已經介紹了 Spring IOC 的相關知識,今天將為個位介紹 Spring 中 Bean 的相關知識。關註我的公眾號「Java面典」,每天 10:24 和你一起瞭解更多 Java 相關知識點。 Bean 的生命周期 Spring 生命周期有四個階段,分別是: 1. 實例化 In ...
  • 什麼是SSRF 一個對外的Web介面,改介面能讓用戶控制curl命令,去訪問別的web服務。 簡圖如下 想象一下當用戶請求的 改成 ,是不是覺得原本不可能訪問到內網的主機,現在就很容易就能做到了。 原理 PHP代碼演示: 1.查看代碼的時候檢查是否使用curl_setopt( )函數; 2.在看傳入 ...
  • title: 博客歸納 blog: "CSDN" data: "Java學習路線及視頻" 2019 12/31 "時間管理" 2020 1/22 "Git是什麼?" 1/23 "Git安裝 Windows" 3/24 "3000字編程入門 附帶Java學習路線及視頻" 3/25 "淺談Java語言環 ...
  • @ + function表示忽略警告。 eval() 是可以執行php代碼 system() 是可以執行系統命令 ...
  • 原創聲明 本文首發於微信公眾號【程式員黃小斜】 本文作者:黃小斜 轉載請務必在文章開頭註明出處和作者。 本文思維導圖 什麼是Spring,為什麼你要學習spring? 你第一次接觸spring框架是在什麼時候?相信很多人和我一樣,第一次瞭解spring都不是做項目的時候用到,而是在網上看到或者是聽到 ...
  • 什麼是protobuf protocol buffers 是一種語言無關、平臺無關、可擴展的序列化結構數據的方法,它可用於(數據)通信協議、數據存儲等。是一種靈活,高效,自動化機制的結構數據序列化方法-可類比 XML,但是比 XML 更小(3 ~ 10倍)、更快(20 ~ 100倍)、更為簡單。 p ...
  • 集合類型及操作 集合元素之間無序,集合元素不可更改。 創建 set("pypy123") {'1', '3', 'p', 'y', '2'} 空集合不能用{}生成,留個字典了, 用set() 關係操作 交 & 並 | 差 - 補^ 支持(&=, |=, -=, ^=) 關係操作符 <,<=,>,>= ...
  • 點點這個鏈接免費獲取:本人免費整理了Java高級資料,涵蓋了Java、Redis、MongoDB、MySQL、Zookeeper、Spring Cloud、Dubbo高併發分散式等教程,一共30G,需要自己領取。傳送門:https://mp.weixin.qq.com/s/osB-BOl6W-ZLT ...
一周排行
  • 背景 習慣使用markdown的人應該都知道Typora這個神器,它非常簡潔高效。雖然博客園的線上markdown編輯器也不錯,但畢竟是網頁版,每次寫東西需要登錄系統-進後臺-找到文章-編輯-保存草稿。。。非常難受。。。 但是使用Typora來寫的話,文章圖片又是個問題,本地寫完粘貼到網站上,圖片全 ...
  • 案例:修改預設線程個數 1.NameValueCollection System.Collections.Specialized.NameValueCollection collection = new System.Collections.Specialized.NameValueCollecti ...
  • // from https://stackoverflow.com/questions/35381238/how-to-use-custom-fonts-in-emgucv string text = "塗聚文(Geovin Du)"; // 下麵定義一個矩形區域 int rectWidth = t ...
  • 場景 ASP.NET中新建Web網站並部署到IIS上(詳細圖文教程): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/107199747 前面講過將ASP.NET的項目部署到本機的IIS上。 但是如果將其部署到伺服器上Window ...
  • 在不同的區域中使用Convert.ToDouble可能會產生問題。 string str = "20.0"; double val = Convert.ToDouble(str); 比如在某些區域語言中得到的結果是200,如: Thread.CurrentThread.CurrentCulture ...
  • 1、前言 ​ 不知道你是否對.NET裡面的定時器產生過一些疑問,以下是武小棧個人的一些總結。 2、官方介紹 在.NET的框架之內定時器有四種,先看一下微軟官方對他們各自特點介紹: System.Timers.Timer,它將觸發事件,並定期在一個或多個事件接收器中執行代碼。 類旨在用作多線程環境中基 ...
  • 筆試考試系統需求分析 1. 引言 1.1編寫目的 項目需求分析目的是使用戶和軟體開發者雙方對項目開發目標有一個共同的理解,便於對軟體開發各個過程的控制與管理,通過對項目開發目標的描述,使開發人員能夠正確理解用戶需求,明確該系統應具有的功能。性能與界面要求。 需求分析作為項目開放的基礎和依據,其預期讀 ...
  • 使用Topshelf部署.net core windows服務 首先新建一個.net core的模板worker程式 過程 略 打開Program.cs namespace TopshelfDemo { public class Program { public static void Main(s ...
  • xaml裡面使用很簡單 xmlns:i="http://schemas.microsoft.com/xaml/behaviors" <i:Interaction.Behaviors> <i:MouseDragElementBehavior/> </i:Interaction.Behaviors> 後 ...
  • Application Insignhts是微軟開發的一套監控程式。他可以對線上的應用程式進行全方位的監控,比如監控每秒的請求數,失敗的請求,追蹤異常,對每個請求進行監控,從http的耗時,到SQL查詢的耗時,完完整整的被記錄下來。當對程式進行優化跟排錯時非常好使。它原來是visualstudio ...