チャットを作成しようと思ってWinsockを使いました。
サーバーを起動させてからコマンドプロントのtelnetでグローバルIPにアクセスしたところ
接続できませんでした。
localhostだと接続できます。
いったいなぜでしょうか?
どのように改善したらよろしいですか?
#include <stdio.h>
#include <winsock2.h>
#include <time.h>
int main()
{
WSADATA wsaData;
SOCKET sock0;
struct sockaddr_in addr;
struct sockaddr_in client;
int len;
SOCKET sock;
BOOL yes = 1;
BYTE buf[1024];
char data[1024];
int recN;
WSAStartup(MAKEWORD(2,0), &wsaData);
sock0 = socket(AF_INET, SOCK_STREAM, 0);
addr.sin_family = AF_INET;
addr.sin_port = htons(57630);
addr.sin_addr.S_un.S_addr = INADDR_ANY ;
setsockopt(sock0,
SOL_SOCKET, SO_REUSEADDR, (const char *)&yes, sizeof(yes));
bind(sock0, (struct sockaddr *)&addr, sizeof(addr));
listen(sock0, 5);
while (1) {
len = sizeof(client);
sock = accept(sock0, (struct sockaddr *)&client, &len);
recN = recv(sock,buf,sizeof(buf),0);
printf("相手の発言->%s\n"buf);
printf("自分の発言->");
scanf("%s"&buf);
send(sock,buf,strlen(buf),0);
}
closesocket(sock0);
WSACleanup();
}
Winsock
Re:Winsock
>自分自身のグローバルIPには接続できません。
そうなんですか?
プログラム事態に間違えはないのですかね?
別のインターネット環境からなら接続できますかね?
そうなんですか?
プログラム事態に間違えはないのですかね?
別のインターネット環境からなら接続できますかね?
Re:Winsock
ルータなどがある場合はアクセスできなかったようですが
記憶違いだったらすみません。
まずは、1台のパソコンでクライアントとサーバーをつくって
通信してみてはいかがでしょうか?
チャットについては以下のページが参考になるかもしれません。
http://ameblo.jp/wsh1706/entry-10391982209.html
記憶違いだったらすみません。
まずは、1台のパソコンでクライアントとサーバーをつくって
通信してみてはいかがでしょうか?
チャットについては以下のページが参考になるかもしれません。
http://ameblo.jp/wsh1706/entry-10391982209.html
Re:Winsock
一台のパソコンでは実装できました。
一台のパソコンや自分のネットワーク上(自分の家の他のパソコン)とチャットしてもつまらないので
インターネット上の誰かとやろうと思って今回の作成に踏み込みました。
一台のパソコンや自分のネットワーク上(自分の家の他のパソコン)とチャットしてもつまらないので
インターネット上の誰かとやろうと思って今回の作成に踏み込みました。
Re:Winsock
残念ですが、他の人と接続テストするしかありません。
>プログラム事態に間違えはないのですかね?
ルータのポート開放とかの問題が無ければ接続できると思います。
>プログラム事態に間違えはないのですかね?
ルータのポート開放とかの問題が無ければ接続できると思います。
Re:Winsock
インターネット越しのアクセスとなると、
ルータのポートの設定が必要になってきます。
「簡易ポートスキャンスクリプト」で調べていただければ
インターネット側から、ポートが相手いるか確認してくれる
サイトがありますので、そちらで確認なさってはいかがでし
ょうか?
ルータのポートの設定が必要になってきます。
「簡易ポートスキャンスクリプト」で調べていただければ
インターネット側から、ポートが相手いるか確認してくれる
サイトがありますので、そちらで確認なさってはいかがでし
ょうか?
Re:Winsock
>残念ですが、他の人と接続テストするしかありません。
>ルータのポート開放とかの問題が無ければ接続できると思います。
そうですか。
わかりました。ありがとうございます。(T_T)
>ルータのポート開放とかの問題が無ければ接続できると思います。
そうですか。
わかりました。ありがとうございます。(T_T)