MingGW 內外中編寫程式進行udp 通訊
首先用python 編寫一個server
import socket address = ('127.0.0.1', 21567) s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) s.bind(address) while True: data, addr = s.recvfrom(2048) if not data: print "client has exist" break print "received:", data, "from", addr s.close()
而又用c編寫一個client
用下面的編譯#include<stdio.h> #include<winsock2.h> #pragma comment(lib,"ws2_32.lib") //Winsock Library #define SERVER "127.0.0.1" //ip address of udp server #define BUFLEN 512 //Max length of buffer #define PORT 21567 //The port on which to listen for incoming data int main(void) { struct sockaddr_in si_other; int s, slen=sizeof(si_other); char buf[BUFLEN]; char message[BUFLEN]; WSADATA wsa; //Initialise winsock printf("\nInitialising Winsock..."); if (WSAStartup(MAKEWORD(2,2),&wsa) != 0) { printf("Failed. Error Code : %d",WSAGetLastError()); exit(EXIT_FAILURE); } printf("Initialised.\n"); //create socket if ( (s=socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)) == SOCKET_ERROR) { printf("socket() failed with error code : %d" , WSAGetLastError()); exit(EXIT_FAILURE); } //setup address structure memset((char *) &si_other, 0, sizeof(si_other)); si_other.sin_family = AF_INET; si_other.sin_port = htons(PORT); si_other.sin_addr.S_un.S_addr = inet_addr(SERVER); //start communication while(1) { printf("Enter message : "); gets(message); //send the message if (sendto(s, message, strlen(message) , 0 , (struct sockaddr *) &si_other, slen) == SOCKET_ERROR) { printf("sendto() failed with error code : %d" , WSAGetLastError()); exit(EXIT_FAILURE); } //receive a reply and print it //clear the buffer by filling null, it might have previously received data memset(buf,'\0', BUFLEN); //try to receive some data, this is a blocking call if (recvfrom(s, buf, BUFLEN, 0, (struct sockaddr *) &si_other, &slen) == SOCKET_ERROR) { printf("recvfrom() failed with error code : %d" , WSAGetLastError()); exit(EXIT_FAILURE); } puts(buf); } closesocket(s); WSACleanup(); return 0; }
gcc winclient.c -lws2_32
而後就可以運行了。
相關推薦
MingGW 內外中編寫程式進行udp 通訊
首先用python 編寫一個server import socket address = ('127.0.0.1', 21567) s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) s.bind(ad
python v3.3.2中使用subprocess模組與其它程式進行管道通訊
下面是python指令碼sup.py: import subprocess p = subprocess.Popen("test.exe", stdin = subprocess.PIPE,stdout = subprocess.PIPE, stderr = subpr
Android開啟熱點進行UDP通訊中的坑
1、寫在前面: 2018年的第一篇文章,最近在使用UDP協議進行硬體通訊,大家都知道UDP協議通訊必須在同一個區域網內,但是每個使用者家的wifi都是不一樣的,硬體裝置是無法只值連線到使用者家的wifi的。所以為了解決這個問題,提出一個思路,讓手機開啟熱點,然
unity3D中使用Socket進行資料通訊(二)
上一篇部落格主要介紹了使用socket搭建服務端和客戶端程式,這一篇來說說socket的資料傳輸,我們使用socket的目的是解決點對點之間的資料傳輸,之前提到了socket中一個重要的概念:埠。而socket傳輸資料的方式就是埠與埠之間以流(stream)的方式傳輸資料,s
Java中的TCP、UDP通訊
文章目錄TCP建立伺服器建立客戶端UDP小結 TCP TCP 協議提供面向連線的服務,通過它建立的是可靠地連線。Java 為 TCP 協議提供了兩個類:Socke 類和 ServerSocket 類。
unity3D中使用Socket進行資料通訊(三)
今天跟大家繼續學習下socket,由於最近有個招標引數需要給之前的一款產品做教師端以及後臺資料庫部分,忙了將近兩個禮拜,今天剛釋出了,就繼續我們的socket通訊部分。 之前服務端一直在VS中去做,考慮到後面客戶端與伺服器一體化,就把服
vc++求助:直接在vc++6.0中編寫程式,編譯通過,連接出錯,但是把原始檔拷到另一個工程中去,就行了。why??
我的原始碼如下: c1.h #include <string.h>#include <ctype.h>#include <malloc.h>#include <limits.h>#include <stdio.h>
如何在Unity中對程式進行 Android 真機斷點除錯?
在百度上搜索了很久都沒有找到如何在Android上面真機斷點除錯的方法,沒辦法只能科學上網到谷歌上去找,終於在Unity官網上找到了Android真機斷點除錯的辦法。1.首先在手機上開啟USB除錯功能,並安裝驅動(這一步很多手機助手都可以完成)。2.用USB電纜連線手機和電腦。3.確保手機和電腦在一個區域
MFC中利用CSocket實現UDP通訊
原始碼請到此處下載。 基本介面如下: UDP通訊時雙方地位是對等的,不用像TCP那樣要在伺服器端設定一個監聽Socket。 第一
C語言:利用指標編寫程式,定義一個3行3列的二維陣列,並在程式中對其進行賦值,陣列元素的型別不限,輸出該二維陣列以及各行的均值
題目來源:大工慕課 連結 作者:Caleb Sung 題目要求 利用指標編寫程式,定義一個3行3列的二維陣列,並在程式中對其進行賦值,陣列元素的型別不限,輸出該二維陣列以及各行的均值,各行
編寫程式實現以下功能: 隨機產生20個正整數存入陣列a中,且每個數均在1000-9999之間(包含1000和9999)。對陣列進行排序,要求按每個數的後三位的大小進行升序排列,然後取出滿足此條
<span style="font-size:24px;">int a[20] = {0};//定義一個數組 for (int i = 0; i < 20; i++) { a[i] = arc4random() % (9999 -
建立一個complex包,包中定義一個複數類Complex,實現複數的加減乘法(包括其中有一個是實數的情況)以及相應的set /get方法,然後編寫另一個應用程式進行驗證包
1.public class ComplexTester{ 3. public static void main(String[] args) 4. { 5. Complex z1=new Complex(1,2); 6. C
使用C#中的Socket進行通訊
err comm bind 客戶端 ipaddress odi nac rgs tel class Program { static void Main(string[] args) { Socket serv
編寫程式數一下 1到 100 的所有整數中出現多少次數字9(C語言)
#include <stdio.h> int main() { int i = 0; int count = 0; for (i = 1; i <= 100; i++) { if (i % 10 == 9) { count++; } if (i
Java UDP通訊聊天程式
編寫兩個新的VC程式,完成以下功能: 一個程式為服務端,建立UDP服務端套接字。 另外一個程式為客戶端,建立UDP客戶端套接字。 這兩個新程式可以互聯,完成一個基於TCP/IP網路的文字聊天程式。 因為TCP需要三次握手,所以只能一來一回的實現聊天程式,而UDP可以只負責
編寫程式,在一非遞減的順序表L中,刪除所有值相等的多餘元素。要求時間複雜度O(n),空間複雜度為O(1)
翠花上程式碼: Status delExcrescentValue(SeqList &S){ int flag = 0,val = S.elem[0];//記錄值不等的下標 //printf("%d\n",S.elem[0]); for(int i = 1;i
#小程式#小程式中父子元件間的通訊與事件
子 - Component child.json { "component": true, "usingComponents": {} } child.wxml <view class='template-child'> <bloc
如何實現windows系統與虛擬機器中linux系統間的通訊,使linux系統能夠上網,兩個系統間可以進行檔案互傳。
我使用的虛擬機器軟體為virtual box,系統為redhat 6.6,本機系統為win10旗艦版。當然,其他環境具體操作起來或許會有細微差別,但大體方向相同。 一、使虛擬機器系統能夠上
統計一行文字的單詞個數 (15 分) 本題目要求編寫程式統計一行字元中單詞的個數。所謂“單詞”是指連續不含空格的字串,各單詞之間用空格分隔,空格數可以是多個。 輸入格式: 輸入給出一行字元。 輸出格式: 在一行中輸出單詞個數。 輸入樣例: Let's go to room 209. 輸出樣例
MD,一開始就想著怎麼 用空格和結尾前判斷字母 來計算寫的頭的爆了, 反過來判斷空格後面是否有 =‘ ’就尼瑪容易多了 #include<stdio.h> #include<stdlib.h> #include<string.h> int
在Spark Shell中編寫WordCount程式
Spark Shell是一個互動式的命令列,裡面可以寫Spark程式(Scala語言),也是一個客戶端,用於提交Spark程式 1.啟動Spark Shell bin/spark-shell 上邊是沒有指定Master地址的啟動方式,啟動後用的是spark的local模