34
(結果が大きすぎます)のbind()
というエラーが表示されています。結果が大きすぎるC++ソケット
void Connect(string address, unsigned short port){
memset(&server2, 0, sizeof(server2));
server2.sin_family = AF_INET;
server2.sin_addr.s_addr = inet_addr(address.c_str());
server2.sin_port = htons(port);
desc2 = ::socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if(desc2 == -1) {
cout << "Error in Socket()" << endl;
}
if((::bind(desc2,(sockaddr*)&server2, sizeof(server2))) == -1) {
cout << "Error in Bind() " << errno << endl;
}
if((::connect(desc2, (sockaddr*)&server2, sizeof(server2))) > 0) {
cout << "Error in Connect()" << endl;
}
cout << "YOU ARE CONNECTED TO " << address << " ON PORT " << port << endl;
}
PS:私も1年前にこのエラーを得た、問題は私が接続するソケットアドレスを、初期化時に悪い何かを書く持っていた単純なものでしたが、今再び、私はミスを犯した見当もつかない。
ドット表記で、それがドメインのようなものなら、それはうまくいきます.... strange – Kobe
エラーを指摘してください:接続は成功すると0を返し、 '== 0'を使います。私は-1を 'SOCKET_ERROR'に変更するでしょう。 – Marlon
私は両方ともSOCKET_ERRORに設定しました。 Btw私は本当に接続時にバインドを呼び出す必要がありますか、または私は接続(サーバーの部分)を聞いているときだけですか? – Kobe