Cho mình hỏi chút phần code server trong minichat
1.
Tại sao khi mình để code trong OnInit như thế này thì biên dịch hiện dialog bình thường
Mã:
bind( m_socket, (SOCKADDR*) &service, addlen );
if ( bind( m_socket, (SOCKADDR*)&service, addlen ) == SOCKET_ERROR ) {
m_content.AddString("bind() failed." );
closesocket(m_socket);
}
Ngược lại,như thế này lại không hiện dialog chương trình.Mặc dù không báo lỗi
Mã:
if ( bind( m_socket, (SOCKADDR*)&service, addlen ) == SOCKET_ERROR ) {
m_content.AddString("bind() failed." );
closesocket(m_socket);
}
2.Tại sao mình khởi tạo winsock,tạo socket mà khi bind fail ?
Mã:
//khoi tao winsock
WSADATA wsaData;
int iResult = WSAStartup( MAKEWORD(2,2), &wsaData );
if ( iResult != NO_ERROR )
MessageBox("Error at WSAStartup()");
//Tao socket
m_socket = socket( AF_INET, SOCK_STREAM, IPPROTO_TCP );
if ( m_socket == INVALID_SOCKET )
{
MessageBox("khong thanh cong");
WSACleanup();
}
// Bind the socket.Cho biet socket cua server se cho doi ket noi va nhan du lieu tu IP va port bao nhieu
sockaddr_in service;
service.sin_family = AF_INET;
service.sin_addr.s_addr = inet_addr( "127.0.0.1" );
service.sin_port = htons( 27015 );//port 27015
addlen = sizeof(service);
bind( m_socket, (SOCKADDR*) &service, addlen );
if ( bind( m_socket, (SOCKADDR*)&service, addlen ) == SOCKET_ERROR ) {
m_content.AddString("bind() failed." );
closesocket(m_socket);
}
// Listen on the socket.
listen( m_socket, 5 );
// Accept connections.
m_content.AddString("Waiting for a client to connect...");
accept( m_socket,(sockaddr*)&service, &addlen);
m_content.AddString( "Client Connected.");
Tất cả trong OnInit
View more random threads:
Thông qua phân tích dữ liệu Google từ 86 quốc gia, mới đây, một công ty tại Anh đã công bố bảng xếp hạng kích tấc "cậu nhỏ" của các nước trên thế giới. Kết quả, hầu hết các nước xếp ở nhóm đầu của...
"Chim" của chàng trai Việt thuộc...