首先以下用到的基本都是你學過的知識,如果你是電腦科學與技術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...