現在、UDP通信を用いてデータを送りたいと思っています。
受信側はできているのですが、送信側がわかりません。
送りたい数値が6個あるので、string型にしてカンマで区切るということはわかりましたがサンプルコードなどが見つからず、よくわかりません。
教えていただけますか?
よろしくお願いします。
以下がコードです。
C
1//送信側 2#include <winsock2.h> 3 4int 5main() 6{ 7 WSAData wsaData; 8 9 SOCKET sock; 10 struct sockaddr_in addr; 11 12 WSAStartup(MAKEWORD(2, 0), &wsaData); 13 14 sock = socket(AF_INET, SOCK_DGRAM, 0); 15 16 addr.sin_family = AF_INET; 17 addr.sin_port = htons(5555); 18 addr.sin_addr.S_un.S_addr = inet_addr("127.0.0.1"); 19 20 double x = 0.0; 21 double y = 0.0; 22 double z = 0.0; 23 double rx = 9.0; 24 double ry = 1.0; 25 double rz = 1.0; 26 //↑これらをカンマ区切りでsにまとめる? 27 28 sendto(sock, "s", 5, 0, (struct sockaddr *)&addr, sizeof(addr)); 29 30 closesocket(sock); 31 32 WSACleanup(); 33 34 return 0; 35} 36 37 38//受信部分 39//C# 40 41public void Receiver(string s) 42 { 43 double speedx = 0; 44 double speedy = 0; 45 double speedz = 0; 46 double rotatex = 0; 47 double rotatey = 0; 48 double rotatez = 0; 49 50 Debug.Log("Receive"); 51 try 52 { 53 //":"で区切る 54 string[] data = s.Split(':', ','); 55 //どのデータか判定する 56 57 Debug.Log(s); 58 59 if (data[0] == Header.Speed.ToString()) 60 { 61 speedx = double.Parse(data[1]); 62 speedy = double.Parse(data[2]); 63 speedz = double.Parse(data[3]); 64 rotatex = double.Parse(data[4]); 65 rotatey = double.Parse(data[5]); 66 rotatez = double.Parse(data[6]); 67 }
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/08/09 22:32