簡單的通訊程式開發(一)

2021-08-19 19:03:58 字數 2202 閱讀 7271

首先以下用到的基本都是你學過的知識,如果你是電腦科學與技術17級的同學(當然以上的基礎就更加的好了)那你就可以做出來,跟著我做這個簡單的程式可以讓你快速的掌握簡單的開發,學完你就發現其實你也是可以的,用這個簡單的案例以此類推到其他的開發上。

首先我們要明確開發的步驟:

第一)明確他是乙個控制台程式(如果已經學完了控制台版的可以找我要qt版的**,在這裡我就不一一貼出來了)

ps:qt是乙個良好的框架,相比起控制台更加的視覺化。

第二)前提的知識儲備:他用到了通訊工程中乙個重要的知識點,套接字,這個不難學的,可以找我要套接字的docx文件輕鬆學會。

第三)明確他的流程,需要做什麼,我們要怎麼做出來

在這裡我就直接說了,

答:我們需要做兩個程式(伺服器,客戶端),伺服器用於中轉聊天記錄,而客戶端顯而易見的,是用來聊天的。

一,伺服器(效果與**)

在開始製作伺服器之前,我先要說一件事情,都已經到這裡了就一口氣看完吧,看到尾部的時候再回頭看有什麼不懂的。

以下是效果圖展示**在效果圖後面,自己copy。

1.宣告套接字

2.建立伺服器

到這裡已經是建立好伺服器了

3.接收資訊

4.傳輸資訊

看到如此有科技感的效果圖是不是有想做出來的衝動了,我們來看看他的源**吧。

下面的是qt的伺服器部分截圖,這裡就不重點講了。

今天就不重點講了,我先將**複製上來,明天講解。

由於是很久之前寫的程式所以並沒有追求我的簡單風格,若是懂的可以提點一下。

伺服器**:

#include#include#pragma comment(lib,"ws2_32.lib")

using namespace std;

int main()

cout << "完成套接字載入\n正在等待使用者連線...\n";

//2.建立套接字

socket socksrv = socket(af_inet,sock_stream,0);

//伺服器資訊

sockaddr_in information;

information.sin_addr.s_un.s_addr = htonl(inaddr_any); //獲取自己的位址,轉為inter長位元組數字

information.sin_family = af_inet;

information.sin_port = htons(6666);

//3.繫結套接字

socket_error == bind(socksrv, (sockaddr*)&information, sizeof(sockaddr));

if (socket_error == listen(socksrv,5)) //監聽

sockaddr_in friend;

int length = sizeof(sockaddr);

while (1) }

return 0;

}

//**伺服器****//

#include #include #pragma comment(lib,"ws2_32.lib") using namespace std; int main() } else } //接受資訊 char message[100]; recv(client, message, 100, 0); cout << message << "\n"; int i = strlen(message); memset(message, 0, 100); char a[180]; recv(client, a, 180, 0); cout << a ; if (i >30) } else } return 0; }

乙個簡單的串列埠通訊程式

從2015年到現在,將近4年沒有寫程式了,這次是乙個朋友要我做物聯網的專案,要學習一些新東西,做起來再說。主要 private void sp datareceived object sender,serialdatareceivedeventargs e else textbox2.text re...

乙個簡單的BIO通訊程式

同步阻塞io 簡稱bio 是最傳統的一種io模型,即在讀和寫的過程中會發生阻塞現象。我們編寫乙個簡單的服務端和客戶端程式,尋找一下同步阻塞i o的弊端 timeserver public class timeserver catch exception e finally 服務端建立乙個server...

UDP通訊的簡單實現(程式)

資訊處理介面,定義了資訊的關閉,傳送,和接收 public inte ce messageaction udp類實現了messageaction封裝了下面的資訊,並提供了相應的get和set方法private int sendport 要傳送資料的埠號埠號 private int localport...