

Windows XP に GCC と Eclipseをインストールしました。
過去にVisual Studio 2008 Express Editionを使用していたとき
ソケットクライアントは以下のとおり実装しました。
ーーーー
#include <iostream>
#include <ws2tcpip.h>
#pragma comment(lib,"ws2_32.lib")
using namespace std;
int main() {
int dstSocket;
struct sockaddr_in dstAddr;
WSADATA data;
WSAStartup(MAKEWORD(2,0), &data);
// sockaddr_in 構造体のセット
memset(&dstAddr, 0, sizeof(dstAddr));
dstAddr.sin_port = htons(80);
dstAddr.sin_family = AF_INET;
dstAddr.sin_addr.s_addr = inet_addr("127.0.0.1");
// ソケットの生成
dstSocket = socket(AF_INET, SOCK_STREAM, 0);
//接続
if(connect(dstSocket, (struct sockaddr *) &dstAddr, sizeof(dstAddr))){
cout << "接続できませんでした\n" << endl;
return(-1);
}
char buffer[1024] = "GET / HTTP/1.0\r\n\r\n";
send(dstSocket, buffer, sizeof(buffer), 0);
//パケットの受信
int n = recv(dstSocket, buffer, sizeof(buffer), 0);
cout << buffer << endl;
// Windows でのソケットの終了
closesocket(dstSocket);
WSACleanup();
return(0);
}
ーーーー
上記と同じ機能をGCC上で実装したいのですが、どこかに
コードのサンプルがのっているWebサイトはありますか?
No.3ベストアンサー
- 回答日時:
-mno-cygwin
は?
cygwin上で-mno-cygwinを使用したところエラーになりました。cygwin上でcygwinのライブラリを使わないというオプションは使用できないようです。コマンドプロンプト上で-mno-cygwinを付加したところ無事コンパイルできました。ありがとうございました。ただしeclipse上で-mno-cygwinを使う方法がわかりません。makeファイルを直接編集して対応できましたがeclipse上から-mno-cygwinを使う方法は別途探してみます。
No.2
- 回答日時:
お疲れ様です。
gccが手元にないので実証出来ていませんが、
#include <ws2tcpip.h>
を
extern "C"{
#include <ws2.tcpip.h>
}
とするとどうなりますか?
また、pragma自体はgccでもサポートされているようですが、commentはgccでサポートされていないようです。
コンパイルオプション等でリンクするしかないようです。(他の方法があるのか不明)
それと、同じような質問をされるのであれば、前回と同じようにどのようなエラーが出ているのか記載をしないと読む気がしなくなりますよ。
No.1
- 回答日時:
optionつけてコンパイルしたらそのままできませんか
g++ yourprogram.cpp -lws2_32 -mno-cygwin
駄目でした。故障でしょうか。
C:\>g++-4 test.cpp -lws2_32
In file included from /usr/lib/gcc/i686-pc-cygwin/4.3.2/../../../../include/w32a
pi/ws2tcpip.h:19,
from test.cpp:2:
/usr/lib/gcc/i686-pc-cygwin/4.3.2/../../../../include/w32api/winsock2.h:103:2: w
arning: #warning "fd_set and associated macros have been defined in sys/types.
This may cause runtime problems with W32 sockets"
In file included from /usr/lib/gcc/i686-pc-cygwin/4.3.2/../../../../include/w32a
pi/ws2tcpip.h:19,
from test.cpp:2:
/usr/lib/gcc/i686-pc-cygwin/4.3.2/../../../../include/w32api/winsock2.h:635: err
or: declaration of C function 'int gethostname(char*, int)' conflicts with
/usr/include/sys/unistd.h:206: error: previous declaration 'int gethostname(char
*, size_t)' here
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- C言語・C++・C# C++初心者です stirng 2 2022/09/20 20:43
- C言語・C++・C# C++プログラミングコードにポリモーフィズムを取り入れ方を教えてください。 2 2023/06/09 11:17
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# C++のcinの動作 5 2023/02/26 00:13
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- C言語・C++・C# TCP/IP通信時のサーバーからの受信 2 2022/11/23 09:11
- C言語・C++・C# C言語で再起関数とポインタを用いて文字列反転をする方法がわかりません。 4 2023/04/29 20:32
- C言語・C++・C# c言語でユーザ関数を利用して入力された文字列を反転させるプログラムを作りたいです。 3 2023/01/29 19:47
- その他(プログラミング・Web制作) python flask から fastapiへの移行時のエラー対処 1 2023/02/05 12:26
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
std::lower_boundについて
-
【C++】ヘッダ内でstringを格納...
-
enumの値から定義名を文字列化...
-
C++での <iostream.h>と<iostre...
-
VxWorks 6.4ソケット接続につい...
-
VC++で文字列から任意の文字を...
-
#include "fstream.h"
-
なぜ、C++の標準ヘッダをインク...
-
c++のvirtual関数および継承に...
-
winpcapを用いたプログラミング
-
C言語のエラーを修正したい
-
wstringの主力
-
switch文のエラーについて
-
STLで、vectorのファイルへの書...
-
Enterキーを押されたら次の処理...
-
Aの値からBの値を除するとは??
-
「Aに対するBの割合」と「Aに対...
-
DWORDの実際の型は何でしょうか
-
C言語での引数の省略方法
-
エクセルで可視セルにのみ値貼...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
なぜ、C++の標準ヘッダをインク...
-
switch文のエラーについて
-
VC++で文字列から任意の文字を...
-
構文エラーが出ているのですが...
-
gccでコンパイル時のエラー
-
空ENTERの判別
-
vectorのイテレータを大小比較...
-
JPEGやPNGが読めるLoadImage関数
-
C++で、テキストファイルを一行...
-
std::wstringのメモリリークに...
-
enumの値から定義名を文字列化...
-
CStringとString
-
#define中の#のエスケープ
-
std::map の const 修飾について
-
#include "fstream.h"
-
_tcscat がうまくいきません(V...
-
C言語のポインターで詰まっている
-
構造体配列のvectorへの変換と...
-
C++での <iostream.h>と<iostre...
-
ヘッダーファイルがインクルー...
おすすめ情報