C++ 创建套接字C++;
我是新来的,我正在尝试测试我自己的sockets程序 如何创建套接字?以下是我想做的:C++ 创建套接字C++;,c++,sockets,websocket,C++,Sockets,Websocket,我是新来的,我正在尝试测试我自己的sockets程序 如何创建套接字?以下是我想做的: int main(int argc, char *argv[]) { int socket_addr; struct sockaddr_in server; char message[100], server_message[100]; // Creates the socket socket_addr = socket(AF_INET, SOCK_STREAM, 0
int main(int argc, char *argv[]) {
int socket_addr;
struct sockaddr_in server;
char message[100], server_message[100];
// Creates the socket
socket_addr = socket(AF_INET, SOCK_STREAM, 0);
if (socket_addr == -1) {
cout << "Could not create the socket!";
} else {
//...
}
}
由于您说您在windows上,我假设您显示的代码是完整代码,它不工作的原因是因为尚未调用
WSAStartup
,因此此函数初始化网络库,并应在任何网络操作(如创建套接字)之前调用:
//此处包含您的内容。。
#pragma comment(lib,“ws2_32.lib”)//与网络库的链接
int main(int argc,char*argv[]){
int插座地址;
服务器中的结构sockaddr_;
字符消息[100],服务器消息[100];
int wsaRes=0;
WSADATA WSADATA={0};
wsaRes=WSAStartup(MAKEWORD(2,2)和wsaData);
如果(wsaRes!=0)
{
这个问题有点模糊,试着看看这里:@Charlie,谢谢!:d你的代码怎么了?错误是什么(如果发生错误)?你期望的行为是什么?你得到的是哪一个?这些代码看起来很好,除非你应该用)
@Garf365关闭你的if语句,好吧,我在网上按照一个教程做了这一步。编译并运行了它,上面cout语句中的消息出现了…所以我假设没有创建套接字。你会怎么做你能创建那个套接字吗?
1) http://beej.us/guide/bgnet/
2) https://msdn.microsoft.com/en-us/library/windows/desktop/ms742213(v=vs.85).aspx
//your includes here..
#pragma comment(lib, "ws2_32.lib") // link with the network library
int main(int argc, char *argv[]) {
int socket_addr;
struct sockaddr_in server;
char message[100], server_message[100];
int wsaRes = 0;
WSADATA wsaData = {0};
wsaRes = WSAStartup(MAKEWORD(2, 2), &wsaData);
if(wsaRes != 0)
{
std::cerr << "WSAStartup failed!";
return -1;
}
// Creates the socket
socket_addr = socket(AF_INET, SOCK_STREAM, 0);
if (socket_addr == INVALID_SOCKET) {
cout << "Could not create the socket!";
} else {
//...
}
}