回答編集履歴
4
修正
answer
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
どちらもクライアントになってないですか?
|
|
2
|
-
C言語の方
|
|
1
|
+
まずC言語の方がサーバーとして機能していません。
|
|
3
2
|
ソケットを作ってbindしてlistenしないといけません。
|
|
4
3
|
|
|
5
4
|
[こんな感じに](http://www.geekpage.jp/programming/winsock/tcp.php)
|
3
追記
answer
CHANGED
|
@@ -13,3 +13,31 @@
|
|
|
13
13
|
|
|
14
14
|
サーバー側からクライアントに送るという事はクライアントから接続されたソケットを使ってデータを送ります。
|
|
15
15
|
|
|
16
|
+
|
|
17
|
+
追記
|
|
18
|
+
|
|
19
|
+
参考に貼ったURLにあるサーバーのソースの
|
|
20
|
+
|
|
21
|
+
```c
|
|
22
|
+
// ソケットの作成
|
|
23
|
+
sock0 = socket(AF_INET, SOCK_STREAM, 0);
|
|
24
|
+
```
|
|
25
|
+
でlisten用のソケットを作って(接続要求を待つ用のもの)
|
|
26
|
+
|
|
27
|
+
```c
|
|
28
|
+
bind(sock0, (struct sockaddr *)&addr, sizeof(addr));
|
|
29
|
+
|
|
30
|
+
// TCPクライアントからの接続要求を待てる状態にする
|
|
31
|
+
listen(sock0, 5);
|
|
32
|
+
```
|
|
33
|
+
bindでsock0にどのアドレス、どのポートとかの紐付けをする
|
|
34
|
+
listenして
|
|
35
|
+
|
|
36
|
+
```c
|
|
37
|
+
sock = accept(sock0, (struct sockaddr *)&client, &len);
|
|
38
|
+
```
|
|
39
|
+
接続要求があれば接続してきたクライアントと通信するためのソケットを返します。
|
|
40
|
+
|
|
41
|
+
このsock0とsockは別ものです。(同じものだとサーバー1つに対してクライアントも1つしか接続できないようになってしまうので。。)
|
|
42
|
+
|
|
43
|
+
という感じです。
|
2
修正
answer
CHANGED
|
@@ -9,10 +9,7 @@
|
|
|
9
9
|
> C言語側ではWinSocketを利用してサーバーを立て
|
|
10
10
|
> C#側ではSystem.Net.Sockets.TcpClientを利用してクライアントとして
|
|
11
11
|
|
|
12
|
-
という事はC言語側がサーバー、C#側がクライアントという事なので
|
|
13
|
-
|
|
14
12
|
「C言語側から送られてくるint型のデータを取得したいです。」
|
|
15
13
|
|
|
16
|
-
これはC#側から送られてくるint型のデータを受信したいという事ではないですか?
|
|
17
|
-
サーバーとクライアント
|
|
14
|
+
サーバー側からクライアントに送るという事はクライアントから接続されたソケットを使ってデータを送ります。
|
|
18
15
|
|
1
追記
answer
CHANGED
|
@@ -2,4 +2,17 @@
|
|
|
2
2
|
C言語の方をwinsockを使ってサーバーにする場合は
|
|
3
3
|
ソケットを作ってbindしてlistenしないといけません。
|
|
4
4
|
|
|
5
|
-
[こんな感じに](http://www.geekpage.jp/programming/winsock/tcp.php)
|
|
5
|
+
[こんな感じに](http://www.geekpage.jp/programming/winsock/tcp.php)
|
|
6
|
+
|
|
7
|
+
追記
|
|
8
|
+
|
|
9
|
+
> C言語側ではWinSocketを利用してサーバーを立て
|
|
10
|
+
> C#側ではSystem.Net.Sockets.TcpClientを利用してクライアントとして
|
|
11
|
+
|
|
12
|
+
という事はC言語側がサーバー、C#側がクライアントという事なので
|
|
13
|
+
|
|
14
|
+
「C言語側から送られてくるint型のデータを取得したいです。」
|
|
15
|
+
|
|
16
|
+
これはC#側から送られてくるint型のデータを受信したいという事ではないですか?
|
|
17
|
+
サーバーとクライアントが混同されているように思います。
|
|
18
|
+
|