• ベストアンサー

Winsockについて

zhjie374の回答

  • zhjie374
  • ベストアンサー率0% (0/2)
回答No.1

UNIX ドメインソケットは、名前通りUNIXしか使えません。

参考URL:
http://www.ne.jp/asahi/hishidama/home/tech/socket/index.html
upanepa
質問者

お礼

ご回答ありがとうございます。 > UNIX ドメインソケットは、名前通りUNIXしか使えません。 そうなんですね、知りませんでした。

関連するQ&A

  • WinSockのソケットからウィンドウへのメッセージで・・・

    こんばんは、このたびWinSockを用いたネットワークゲームを作成しようと考えたのですが、サーバー側がクライアントの接続ごとにソケットを立て、そのメッセージをすべて同じウィンドウへ返すようにしているのですが、それではどのソケットからメッセージが来たのか分からず、どのソケットをレシーブすればいいのか分かりません。 こういう場合の有効的な手段って何かないですか? 分かりにくい質問ですみません。どなたかお願いしますm(_ _)m

  • Windows95でWinsock1とWinsock2を共存させる方法

    現在、Windows95を使用していて、その中でいくつかのアプリケーションを動かしています。 しかし、あるアプリケーションを動作させようとすると、Winsock2が必要となりました。 しかし、別のアプリケーションがWinsock1を使用しているのです。  アプリケーションA(SQLWindows):Winsock1使用  アプリケーションB(Avast):Winsock2使用 上記、アプリケーションA、Bを同一Windows95マシンで使用するために、Winsock1とWinsock2を共存させたたいのですが、その方法をご存知の方はいらっしゃいますか?

  • UDP/IPでのソケット作成について(winsock)

    UDP/IPでのソケット作成について(winsock) 開発環境VC++.NET、O/S WIN2000にてソケットプログラミング(winsock2.0)をしています。 コンソールプログラミングではありませんが、WindProcは持っていません。 UDPサーバーを作り、複数クライアントの対応をしたいと考えています。 クライアントAからの通信やりとり中に クライアントBからの通信がきたら、そちらとも通信やりとりを(自動で)行いたい。 ここで問題なのが、クライアントAの要求ポートが15000で、 クライアントBの要求ポートも15000なのです。 同じ既に開いているポートでソケット作成しようとしても、socket()関数はエラーを返してくるのですが、 やり方を工夫すれば、同一ポートでの複数クライアント対応は可能なのでしょうか。不可能なのでしょうか。 可能であれば、やり方、ヒント等教えてください。よろしくお願いします。 追記 (1)TCP/IPでは、同一ポートでソケット作成が可能でした。ネットで探したサンプルプログラムが  そのような動きをしていたのですが、UDPに書換えることはできませんでした。  http://eternalwindows.jp/network/winsock/winsock04s.html (2)UNIXの場合fork()処理後に socket()作成 → bind()で同一ポートでの複数クライアント対応が  上手くいくらしいのですが、Windowsではマルチスレッド等をうまく活用すれば、  fork()と同様の処理が可能になり、目的が達成できるでしょうか。

  • VB(Windows)からUNIXマシンのプログラムを起動?

    ソケット通信のアプリを作りたいのですが、よろしかったらご指導ください。 VB(Windows)からUNIXマシンのプログラムを起動するにはどうすれば良いのでしょうか。 WinSockを使ったサンプルソースが見れるサイトを知っていたら教えてください。 また良い書籍などあれば教えてください。

  • winsockについて教えてください。

    winsockについて教えてください。 ネットワーク系は初心者なので、理解が遅いと思いますが、お手柔らかに御願いします。 始めは、perlでクライアント側もサーバ側もソケットで通信するプログラムを書いたんですが、 クライアント側のpcはperlが標準装備ではないので、クライアント側だけVC++で書き直そうと、現在しているのですが、うまくクライアント側で受信してくれません。 書いたソースは、 #include <stdlib.h> #include <conio.h> #include <stdio.h> #include <winsock2.h> #include <cstdlib> #include <iostream> #include <fstream> #define BUFSIZE 256 #define FILENAME "C:\\abc.dat" int main(void) { FILE *fp; int nRtn; char fname[BUFSIZE] = FILENAME; char StrRcv[RECVSIZE]; SOCKET s; //ソケット //接続するサーバの情報 struct sockaddr_in dest; //接続するサーバのIPアドレス //xxx.xxx.xxx.xxxの形式で指定する char destination[] = "xxx.xxx.xxx.xxx"; char buffer[BUFSIZE]; char send_buf[BUFSIZE]; //ソケット通信の準備 WSADATA data; WSAStartup(MAKEWORD(2,0), &data); //接続先(サーバ)のアドレス情報を設定 memset(&dest, 0, sizeof(dest)); //ポート番号はサーバプログラムと共通 dest.sin_port = htons(3001); dest.sin_family = AF_INET; dest.sin_addr.s_addr = inet_addr(destination); //ソケットの生成 s = socket(AF_INET, SOCK_STREAM, 0); //サーバへの接続 if(connect(s, (struct sockaddr *) &dest, sizeof(dest))){ printf("%sに接続できませんでした\n", destination); return -1; } printf("%sに接続しました\n", destination); //ファイルの読込み if((fp=fopen(fname,"r"))==NULL){ printf("ファイルを開けませんでした\n"); exit(1); } //ファイルサイズ取得(フルパスで書く) ifstream ifs(FILENAME, ios_base::binary); //VC++の場合、peek()で読み込まないとファイルが開かれない ifs.peek(); streamsize size = ifs.rdbuf()->in_avail(); //ファイルサイズを出力します printf("size = %d\n",size); while((fgets(send_buf,size,fp)) != 0){ send(s,send_buf,size, 0); }    fclose(fp); //サーバからデータを受信 while(1){ memset(StrRcv, '\0', sizeof(StrRcv)); nRtn = recv(s, StrRcv, (int)sizeof(StrRcv) - 1, 0); printf("→ %s\n\n", StrRcv); if(nRtn == 0) break; if(nRtn ==SOCKET_ERROR){ perror("recvエラーです。\n"); break; } } recv(s, buffer, size , 0); printf("→ %s\n\n", buffer); // Windows でのソケットの終了 shutdown(s,2); closesocket(s); WSACleanup(); return 0; } とこんな感じです。 abc.datの中身はabc。 どこがおかしいかどなたかご教授ください。

  • ソケットプログラミングについて

    ソケットプログラミング(ネットワーク?)をはじめようと思うのですが(使用する言語はCあるいはC++) その場合のOSとして UNIX、Linux、Windows のどれが適しているでしょうか ちなみに、メールサーバや、APACHの様なHTTPサーバを作れる様にまでなりたいです (その他にもFTP等) ちなみに私はUNIXや、Linuxだと思っていますが、Windows との文法の違いはどれくらいあるのでしょうか

  • Winsock 2.0 版を更新できません(win95)

    Windows95で・・・・ DUN 1.3 および Winsock 2.0 アップデート: 西暦 2000 年問題対応 をマイクロソフトのホームページでそのexeを落としインストールしようとしたら下記のメッセージが出てしまいました。 VDHCP.386 の MS DUN 1.3 版または Winsock 2.0 版を更新できません。これらの修正プログラム をインストールするには、この修正プログラムを再インストールする必要があります。 と表示されました。 この場合どのように対処しインストールすれば良いのでしょうか?

  • 『Winsock error』の存在意義と処理方法

    WindowsCEマシンのtcp/ip通信をEVC++で組んでいます。 ●非同期通信クライアント ●非同期通信サーバ ●同期通信クライアント ●同期通信サーバ の4種類を組んでいます。 堅牢性をアップさせるため、『Winsock error』が発生した時に、 リトライなどの 処理を考えているのですが、参考になる体験談、URL、書籍など有りましたら、お教え頂きたいと思います。 (WindowsとWindowsCEの違いで気を付ける点もあればそれもお教え願います。)  やはり、winsock errorというのは、発生原因を知らせるために、printf等で表示する程度(結局、アプリケーションで回避できるようなトラブルであれば、OSが回避し、ソフト的に回避できない物理的なトラブルを通知する程度)なのでしょうか?

  • WinSock プロトコルスタックバッファについて

    開発環境 XP、VC2005、C/C++、WinSock WinSockでネットワークプログラミングをしています。 例えば、下記のようなコードでデータを送信するとします。 int send_byte = send(socket, buf, byte, 0) このとき、変数byteには1024が入っているとします。 上記のコードをループさせてデータを送信すると、 しばらくsend_byteには byteと同じ値1024が入っています。 でも、プロトコルスタックバッファが満杯になり、 send()が処理しきれなくなった場合に、 byteは1024なのに、send_byteが例えば500などになります。 つまり、中途半端に送信してしまいますよね。 これはWinSockの仕様だと思いますが、 できれば中途半端には送信したくないのです。 このように中途半端に送信しない方法はあるでしょうか? send()するまえにプロトコルスタックバッファの空きが調べられれば なんとかできそうな気もするのですが・・・。 よろしくおねがいします。

  • ITです。早速ですがwinsockでURLを指定した接続確認をしたいの

    ITです。早速ですがwinsockでURLを指定した接続確認をしたいのですが、うまくいきません。 下記のソースで、URLを指定してinet_addr関数呼び出すと-1、 gethostbynameを呼び出すと0が却ってきてしまい、うまく接続出来ません。 IPアドレス(127.0.0.1)を指定すれば、上記の関数は成功するのですが。 URLからIPアドレスの変換方法が解りません。 どうか助けて下さい。 int main(int argc, char* argv[]) { WSADATA wsaData; sockaddr_in server; SOCKET sock; long err; hostent *host; char *url = "http://www.yahoo.co.jp"; // winsock2の初期化 err = WSAStartup(MAKEWORD(2,0), &wsaData); if (err != 0) { printf("WSAStartup error = %d\n", err); return(-1); } // ソケットの取得 sock = socket(AF_INET, SOCK_STREAM, 0); if (sock == INVALID_SOCKET) { printf("socket error = %d\n", WSAGetLastError()); return(-1); } // IPアドレスの取得 memset(&server, 0, sizeof(server)); server.sin_family = AF_INET; server.sin_port = htons(80); server.sin_addr.S_un.S_addr = inet_addr(url); if (server.sin_addr.S_un.S_addr == -1) { host = gethostbyname(url); if (host == NULL) { printf("host not found host = %d\n", WSAGetLastError()); return(-1); } }