socket 프로 그래 밍 (1) 가장 간단 한 c / s 모드
왼쪽 은 클 라 이언 트 모드 이 고 오른쪽 은 서버 모드 입 니 다.
서버 모드 가 상대 적 으로 복잡 하 다 는 점 은 긍정 적 인 것 입 니 다. 서버 가 다양한 클 라 이언 트 와 의 연결 에 직면 하기 때 문 입 니 다.
관련 함 수 는 설명 하지 않 고 입문 단계 의 책 에는 모두 있 으 며 매우 상세 하 게 설명 되 어 있다.
여 기 는 소 개 를 많이 안 해 요!
다음은 서버 모드 로 정보 수신 만 담당 합 니 다.
#include <iostream>
#include <WINSOCK2.H>
#pragma comment(lib,"Ws2_32.lib")
using namespace std;
int main(int argc, char* argv[])
{
char buff[255];
WSADATA wsa;
//
if ( WSAStartup( MAKEWORD(2,2) , &wsa ) )
{
cout<<"1!"<<endl;
}
//
SOCKET server_socket = socket(AF_INET , SOCK_STREAM , 0);
SOCKADDR_IN serveradd;
serveradd.sin_family = AF_INET;
serveradd.sin_port = htons(8000);
serveradd.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
//
if(bind(server_socket , (SOCKADDR *)&serveradd , sizeof(serveradd)) == SOCKET_ERROR)
{
cout<<"2"<<endl;
WSACleanup();
}
//
if(listen(server_socket , 5) == SOCKET_ERROR)
{
cout<<"3"<<endl;
WSACleanup();
}
//
SOCKADDR_IN clientadd;
int len = sizeof(clientadd);
int irecv = 0 ;
//
SOCKET client_sock = accept(server_socket , (SOCKADDR *)&clientadd , &len);
while (1)
{
// !
irecv = recv(client_sock , buff , 255 , 0);
if (irecv == 0 || irecv == SOCKET_ERROR )
{
break;
}
cout<<buff<<endl;
}
return 0;
}
클 라 이언 트 의 예 를 계속 붙 입 니 다.
클 라 이언 트 는 데이터 만 보 냅 니 다.
#include <iostream>
#include <WINSOCK2.H>
#pragma comment(lib,"Ws2_32.lib")
using namespace std;
int main(int argc, char* argv[])
{
char buff[255];
//
WSADATA wsa;
if ( WSAStartup( MAKEWORD(2 , 2) , &wsa ) )
{
cout<<"WSAStartup error !"<<endl;
}
//
SOCKET client_socket = socket( AF_INET , SOCK_STREAM , 0 );
if (client_socket == INVALID_SOCKET)
{
cout<<" "<<endl;
}
//
SOCKADDR_IN server_addr;
server_addr.sin_family = AF_INET ;
server_addr.sin_port = htons(8000);
server_addr.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
//
int ret = connect(client_socket ,(SOCKADDR *)&server_addr , sizeof(server_addr));
if (ret == SOCKET_ERROR )
{
cout<<" "<<endl;
}
while (1)
{
cin>>buff;
send(client_socket , buff , strlen(buff)+1 , 0 );
Sleep(1000);
}
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Linux Shell 프로 그래 밍 - 텍스트 처리 grep, sed사용자 가 지정 한 '모드' 에 따라 대상 텍스트 를 일치 하 게 검사 하고 일치 하 는 줄 을 인쇄 합 니 다. ##포함 되 지 않 음, 역방향 일치 \ ##키워드 앞 뒤 가 맞지 않 고 키워드 만 일치 합 니 다...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.