디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

네트워크 프로그래밍 질문.

화택씨갤로그로 이동합니다. 2010.10.29 12:31:55
조회 92 추천 0 댓글 1

// 서버 //

#include <iostream>
#include <Windows.h>
using namespace std;

#pragma comment(lib,"ws2_32.lib")

char rbuf[128];
char sbuf[128];

DWORD WINAPI proc1(LPVOID lpvoid)
{
while(1)
{
int rv;
rv=recv((SOCKET)lpvoid,rbuf,512,NULL); // 0 이면 연결이 끊긴것.
if(rv==0 || rv==SOCKET_ERROR)
break;
cout << rbuf << endl;
}

return 0;
}

DWORD WINAPI proc2(LPVOID lpvoid)
{
while(1)
{
gets(sbuf);
send((SOCKET)lpvoid,sbuf,512,NULL);
}

return 0;
}

int main()
{
// 윈속 초기화 -> !=0) 가 에러
WSADATA wsa;
if(WSAStartup(MAKEWORD(2,2),&wsa)!=0)
cout << "WSAStartup 에러" << endl;

// 소켓 생성 -> return 값 : SOCKET -> ==INVALID_SOCKET) 가 에러
SOCKET tcp_sock = socket(AF_INET,SOCK_STREAM,NULL);
if(tcp_sock==INVALID_SOCKET)
cout << "socket 에러" << endl;

// 구조체 생성, 초기화
SOCKADDR_IN sockaddr;
ZeroMemory(&sockaddr,sizeof(sockaddr));

sockaddr.sin_addr.s_addr= htonl(INADDR_ANY);
sockaddr.sin_family = AF_INET;
sockaddr.sin_port = htons(22432);

// bind -> ==SOCKET_ERROR) 가 에러
int error;
error = bind(tcp_sock,(SOCKADDR*)&sockaddr,sizeof(sockaddr));
if(error==SOCKET_ERROR)
cout << "bind 에러" << endl;

// listen -> ==SOCKET_ERROR) 가 에러
error = listen(tcp_sock,SOMAXCONN);
if(error==SOCKET_ERROR)
cout << "listen 에러" << endl;

// accept -> ==INVALID_SOCKET) 가 에러
SOCKADDR_IN clientaddr;
ZeroMemory(&clientaddr,sizeof(clientaddr));

int clientlen = sizeof(clientaddr);
SOCKET clientsock = accept(tcp_sock,(SOCKADDR*)&clientaddr,&clientlen);
if(clientsock==INVALID_SOCKET)
cout << "accept 에러" << endl;

// 통신 시작
cout << "accept 연결" << endl;

DWORD rw;
CreateThread(0,0,proc1,(LPVOID)tcp_sock,NULL,&rw);
CreateThread(0,0,proc2,(LPVOID)tcp_sock,NULL,&rw);

while(1){}

// 소켓 종료
closesocket(tcp_sock);

// 윈속 종료
WSACleanup();
}


// 클라이언트 //

#include <iostream>
#include <Windows.h>
using namespace std;

#pragma comment(lib,"ws2_32.lib")

char rbuf[128];
char sbuf[128];

DWORD WINAPI proc1(LPVOID lpvoid)
{
while(1)
{
int rv;
rv=recv((SOCKET)lpvoid,rbuf,512,NULL); // 0 이면 연결이 끊긴것.
if(rv==0 || rv==SOCKET_ERROR)
break;
cout << rbuf << endl;
}

return 0;
}

DWORD WINAPI proc2(LPVOID lpvoid)
{
while(1)
{
gets(sbuf);
send((SOCKET)lpvoid,sbuf,512,NULL);
}

return 0;
}

int main()
{
// 윈속 초기화
WSADATA wsa;
WSAStartup(MAKEWORD(2,2),&wsa);

// 소켓 생성 -> return 값 : SOCKET
SOCKET tcp_sock = (AF_INET,SOCK_STREAM,NULL);
if(tcp_sock==INVALID_SOCKET)
cout << "socket 에러" << endl;

// 구조체 생성, 초기화
SOCKADDR_IN sockaddr;
ZeroMemory(&sockaddr,sizeof(sockaddr));
sockaddr.sin_addr.s_addr = inet_addr("192.168.0.60");
sockaddr.sin_family = AF_INET;
sockaddr.sin_port = htons(22432);

// connect();
connect(tcp_sock,(SOCKADDR*)&sockaddr,sizeof(sockaddr));

// 통신 시작
cout << "connect!" << endl;

DWORD rw;
CreateThread(0,0,proc1,(LPVOID)tcp_sock,NULL,&rw);
CreateThread(0,0,proc2,(LPVOID)tcp_sock,NULL,&rw);

while(1){}


// 소켓 종료
closesocket(tcp_sock);

// 윈속 종료
WSACleanup();
}

------------------------

서버가 있고, 클라이언트가 있고.
그냥 둘이서 1:1로 실시간으로 대화하는 프로그램인데.

아무리 해도 서버에 연결이 되지 않습니다.
어떤것이 문제인가요. 알려주세요.

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 현역으로 군대 안 간게 의아한 스타는? 운영자 25/06/30 - -
348512 대학에서 c프로그래밍 배울때 월래 비쥬얼c++써요? [1] ㅇㅇ(112.171) 13.03.09 125 0
348511 유니티정도야 언리얼이나 크라이 엔진 모바일 버젼나오면 캐발린다.. [5] 하하하(1.231) 13.03.09 92 0
348510 공룡책이 김상형느님의 API 정복보다 좆냐? [2] 돈의(14.145) 13.03.09 102 0
348509 컴터에 JDK 깔고 이클립스 같은거 안깔면 [3] 121(175.122) 13.03.09 65 0
348507 ??묓겱??낅빍??쇪툧?릭뫫꾸????늕? [7] 유니코드(168.126) 13.03.09 108 1
348506 언리얼 배워라 (125.177) 13.03.09 57 0
348505 아오 게임만들고 싶으면 병신들아 유니티하세요 [4] 티모티모(211.112) 13.03.09 207 1
348504 간만에 명문대 교수가 책 뽑으셧네 [5] 명문인생(125.177) 13.03.09 200 0
348503 요즘 대학 교수들 게스레기 아니냐 [2] (125.177) 13.03.09 112 0
348502 질문하나 [2] 산토리니(49.143) 13.03.09 141 0
348501 밤샘 작업물이 증발했다 [1] (114.200) 13.03.09 49 0
348500 큰일이야!! 프겔러들이 특급이 될까봐 누군가가.... [3] 멍청닭(182.211) 13.03.09 96 0
348499 c,c++,java,objective-c퀴즈어플 만들면망? (211.237) 13.03.09 56 0
348497 무료 리눅스 배포판이랑 유료 리눅스 배포판이랑은 어떤차이가 있나요? [2] 학부생(173.245) 13.03.09 107 0
348496 질문 준치™갤로그로 이동합니다. 13.03.09 33 0
348495 대학 임베디드 아이티과 어떰? [3] Macau갤로그로 이동합니다. 13.03.09 132 0
348493 응용 프로그래머 버리고, 로우 레벨로 가고 싶으면 공룡책은 필수 인가여? [1] 멍청닭(182.211) 13.03.09 168 0
348492 형님들 마지막으로.. [11] 영녕이갤로그로 이동합니다. 13.03.08 153 0
348491 공대 신입생 여자 꼬시는법좀 [2] 黑猫갤로그로 이동합니다. 13.03.08 165 0
348490 형님들 자격증따는 순서좀 [11] 영녕이갤로그로 이동합니다. 13.03.08 210 0
348489 이메일로 이력서 쓸때 팁좀 알려주세요 [3] 신입이되고싶(114.200) 13.03.08 69 0
348487 형들 저 진로 상담좀 [6] ㅇㅇ(121.163) 13.03.08 108 0
348486 학과에 나한테 묘한 경쟁심리 품고있는놈 어떻게 처리해야되냐 [3] 黑猫갤로그로 이동합니다. 13.03.08 130 0
348484 게임엔진 질문드려욧! [12] sda(220.120) 13.03.08 204 0
348483 데이터통신듣기 vs 컴퓨터보안 듣기 [5] ㅇㅇ(121.161) 13.03.08 141 0
348482 [3] 루비•‿•갤로그로 이동합니다. 13.03.08 92 1
348480 정보처리 하룻밤 보고 붙겠소? [6] dot(210.125) 13.03.08 173 0
348479 it뱅크어떰 [5] 백이(112.155) 13.03.08 353 0
348478 it 들어온게 후회는 안되는데 [2] vb(121.186) 13.03.08 152 0
348476 형들 스마트코어라는 회사 알아? [8] 병아리아리(222.112) 13.03.08 572 0
348474 요즘 초중고교생들은 프로그래밍 무슨 언어 배우는지 아는 사람? [9] 에어로홍갤로그로 이동합니다. 13.03.08 190 0
348473 형들 wrapping 함수를 쓰는 이유가 단지 깔끔한 이유때문???? [7] wrapping(175.124) 13.03.08 151 0
348472 치킨용 무 이름 표준화가 시급합니다 [2] 에어로홍갤로그로 이동합니다. 13.03.08 135 0
348471 병특내놔시발들아. [4] qwe(114.200) 13.03.08 117 0
348470 게임프로그래밍 좀 물어볼거있는데 [10] sasd(220.120) 13.03.08 188 0
348469 아 언어부터 어느정도 떼고 다른거 건들자는 생각이었는데 [1] ㄴㄴㅇㅈ(121.186) 13.03.08 75 0
348468 취업할때 토익성적 vs 프리토킹 [4] (121.186) 13.03.08 127 0
348466 ms vb 2012 ex에선 c 연습 어떻게 해? [3] (175.223) 13.03.08 69 0
348465 4년제 컴공 나왔으면 코딩도 중요하지만, [9] 길가던놈갤로그로 이동합니다. 13.03.08 307 0
348464 IT특기병 가는거 별로임 ? [1] 뚤딸우리(1.213) 13.03.08 108 0
348463 형들 뉴비 어떻게해요? [3] 영녕이갤로그로 이동합니다. 13.03.08 83 0
348460 형들 C랑 C++이 뭐에요? [3] 영녕이갤로그로 이동합니다. 13.03.08 140 0
348458 아이패드미니로 아이폰4s, 5 어플 충분히 테스트가능함? [4] ㅈㄷㄱㅈ(175.215) 13.03.08 79 0
348457 씨언어 배우고있는 초짜가 질문하나만 할게 [4] Firefish(121.64) 13.03.08 158 0
348456 디씨 연구서 에어로홍갤로그로 이동합니다. 13.03.08 60 0
348455 이거 [1] de(183.103) 13.03.08 82 0
348454 담배그렇게 땡기지도 않는데 담배피는사람 보면 존나 행복해보임 [3] 우응(210.125) 13.03.08 70 0
348452 담배라는걸 펴볼까? 하고 생각하는순간 이미 늦음 ㅂㅈㄷㅁㅈ(121.65) 13.03.08 86 0
348450 담배 펴볼까? [10] 우응(210.125) 13.03.08 136 1
348449 저랑진지하게 인디게임하실분만 [12] sasd(220.120) 13.03.08 163 0
뉴스 어센트(ASC2NT), 8월 첫 아시아 투어 개최…7월 말 컴백 후 글로벌 행보 본격화 디시트렌드 06.30
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2