您現在的位置是:首頁 > 網路遊戲首頁網路遊戲

如何利用socket進行通訊?

  • 由 葉子陪你玩程式設計 發表于 網路遊戲
  • 2022-07-31
簡介要實現既可以隨時傳送訊息,又可以接收訊息,就得使用上篇文章講到的執行緒方法了,正常程式是會又阻礙作用的,上面的還沒執行完,你是執行不到下面的,而這裡要可以隨時接收和傳送,那肯定得同時執行

實時通訊用什麼方法

前言

如何利用socket進行通訊?

電腦手機通訊工具都用過,比如QQ,微信等,你可能很好奇,一個手機它是如何準確無誤地把訊息傳送給另外一個手機的,當然你會說是透過網路;如果你不斷追問自己為什麼,我相信你一定會陷入困惑,因為困惑你可能會放棄,也可能好奇會想要去知道答案到底是什麼。

今天我不會講它的原理,而是帶你實現一個具備對話功能的兩個程式。(感興趣可以自己去看網上的網際網路協議講解)

網際網路之所以可以進行通訊(傳送資料和接收資料),是因為它根據網路協議已經實現了對應的介面,可以讓我們透過介面來發送資料和接收資料。

什麼是socket

在python中要相互通訊,可以使用socket這個模組來實現,socket是對TCP/IP協議的封裝,socket本身並不是協議,而是一個呼叫介面(API),透過socket,我們才能使用TCP/IP協議來發送資料和接收資料。

服務端實現

既然是要相互通訊,肯定至少需要兩個程式,其中也給我們可以稱為服務端,它會等待其它程式去連線它。

如何利用socket進行通訊?

上面的HOST可以透過命令列檢視,如果是在一臺電腦上執行兩個程式,只要寫127。0。0。1就可以了。

如何利用socket進行通訊?

客戶端實現

如何利用socket進行通訊?

執行結果

這裡需要先執行服務端,然後在執行客戶端,連線成功後相互發送一條訊息就關閉了。

如何利用socket進行通訊?

實時傳送和接收

上面的程式已經可以實現接收和傳送訊息了,但是都是提前按順序設定好的,不能想傳送就傳送。要實現既可以隨時傳送訊息,又可以接收訊息,就得使用上篇文章講到的執行緒方法了,正常程式是會又阻礙作用的,上面的還沒執行完,你是執行不到下面的,而這裡要可以隨時接收和傳送,那肯定得同時執行。

服務端程式

如何利用socket進行通訊?

客戶端程式

如何利用socket進行通訊?

結果:

如何利用socket進行通訊?

如何利用socket進行通訊?

如何利用socket進行通訊?

透過執行緒的方式我們就可以實現傳送和接收訊息的功能了,但是在終端傳送還不是很方便,文字部分格式有些位置不好,之前已經學過圖形介面設計,之後透過結合兩者,就可以實現一個帶有介面的聊天工具了。

如何利用socket進行通訊?

程式碼圖片

一次通訊

如何利用socket進行通訊?

如何利用socket進行通訊?

多次通訊

如何利用socket進行通訊?

如何利用socket進行通訊?

(全文完)

python中的程序與執行緒基本使用(上)

想了解更多精彩內容,快來關注葉子陪你玩程式設計

Top