디시인사이드 갤러리

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

갤러리 본문 영역

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

화택씨갤로그로 이동합니다. 2010.10.29 12:31:55
조회 85 추천 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
등록순정렬 기준선택
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 어떤 상황이 닥쳐도 지갑 절대 안 열 것 같은 스타는? 운영자 24/05/20 - -
222102 레이텍 촹 좋음 [1] [성대아싸]갤로그로 이동합니다. 10.12.03 96 0
222101 C언어 아무것도모른다고 글썼던 2학년 뉴비임 [7] 파워준석갤로그로 이동합니다. 10.12.03 114 0
222100 간만에 숙제 셔틀 '파일에서 열의 최대값 구하기' [3] [성대아싸]갤로그로 이동합니다. 10.12.03 167 0
222099 아리아나 보려 가야지 [3] elwlwlwk갤로그로 이동합니다. 10.12.03 102 0
222098 부와앜ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ QT 해결 ㅋㅋㅋ [3] 어떡해갤로그로 이동합니다. 10.12.03 111 0
222097 안드로이드 태블릿 1호는 어디꺼임? [1] 홍어(58.180) 10.12.03 63 0
222096 구글 pro1tobuf 좋네 다람쥐v갤로그로 이동합니다. 10.12.03 110 0
222095 부칸의 도발에 강력 대응 하겠다 [7] elwlwlwk갤로그로 이동합니다. 10.12.03 117 0
222094 집에 나혼자 밖에 없는데 뭔가 의미있는 일 없을까 [10] elwlwlwk갤로그로 이동합니다. 10.12.03 112 0
222093 일본어 잔재론 - 엔하위키 [3] 모모이갤로그로 이동합니다. 10.12.03 237 0
222092 프로그래밍에 도움되는 Tip [4] 랜징징갤로그로 이동합니다. 10.12.03 233 0
222091 아... 당구 한게임 치고 저녁 먹고 데이트 하고 [1] 시불라미갤로그로 이동합니다. 10.12.03 106 0
222088 playing with c 솔루션 있으신분 급구합니다 로렌(211.37) 10.12.03 723 0
222087 허접이라서 또 왔어요 ㅋ;ㅋ;ㅋ;;이번에는 혼자해보려고 노력했는데 [7] 허접(121.169) 10.12.03 685 1
222086 tcp/ip관련 책좀 추천해주세효~~ ㅎㅎ [1] 모모이갤로그로 이동합니다. 10.12.03 119 0
222084 형들 박스웹같은 사이트는 어떻게 만들까? t(121.143) 10.12.03 62 0
222082 모션 포트레이트 + 플래쉬같은 애니메이션UI 툴 만 만들어서... 햏햏했갤로그로 이동합니다. 10.12.03 59 0
222081 모션 포트레이트 구현방법에 대해 좀 아는거 있는사람? [5] 햏햏했갤로그로 이동합니다. 10.12.03 91 0
222080 아까에 이은 또다른 c언어 질문이에요. [3] 1233(58.233) 10.12.03 109 0
222079 너님들 타코야끼 장사 해봤음? [15] 햏햏했갤로그로 이동합니다. 10.12.03 1389 0
222078 원래 과장님들은 다 멋진가? [14] 해일리갤로그로 이동합니다. 10.12.03 153 0
222077 C언어를 혼자서 공부할수 있습니콰? [17] djㅡhonda갤로그로 이동합니다. 10.12.03 247 0
222076 으흐흑 나의 사라진 일당. ㅜㅜ [6] 한강구조견(59.6) 10.12.03 128 0
222075 c언어 초반부 질문. [3] 1233(58.233) 10.12.03 948 4
222074 님들 이런 온라인게임 만들려면 얼마나 해야되나요? [14] ㅇㅇ(119.207) 10.12.03 253 0
222073 C++에선 구조체도 상속이 되는구나 -_- [6] Deanex(110.9) 10.12.03 1052 3
222071 하루 7시간 교육 + 3시간 복습 + 8시간 프로젝트 [10] 미클갤로그로 이동합니다. 10.12.03 2937 3
222070 C++ 런타임오류 해결법좀 굽신굽신 토끼냄새갤로그로 이동합니다. 10.12.03 125 0
222069 기본 자바 소스 파일 어디서 볼 수 있어? 머그컵갤로그로 이동합니다. 10.12.03 74 0
222068 21세기는 분당살람의 시대 [7] 분당살람갤로그로 이동합니다. 10.12.03 97 0
222067 금요일 밤에는 먹자골목을 요리조리 돌아다니는 재미가 있어야 하는데. [2] 해일리갤로그로 이동합니다. 10.12.03 60 0
222066 쉬운거 같으면서도 어려워 [35] 홍다(114.199) 10.12.03 202 0
222065 LButton 클릭이랑 더블클릭이랑 어케 구분함? [9] ###갤로그로 이동합니다. 10.12.03 341 0
222064 새 귀여워 새 [10] elwlwlwk갤로그로 이동합니다. 10.12.03 162 0
222063 확실히 스윙이 느리긴 느린건가? [7] 머그컵갤로그로 이동합니다. 10.12.03 100 0
222062 c언어 문제질문좀드릴게요ㅠ 모르는것이있어서 [21] 밤나그네(220.69) 10.12.03 166 0
222061 주석 육하원칙 [5] 세브(211.117) 10.12.03 173 0
222059 횽들 지금 아얄씨 안댐? [4] prismatic갤로그로 이동합니다. 10.12.03 67 0
222058 으.. 머리아퍼.... [2] rntjr갤로그로 이동합니다. 10.12.03 80 0
222057 으앙 형들아 얘 왜 함수를 변수인식으로 할까요. [12] 곰세마리가갤로그로 이동합니다. 10.12.03 600 1
222056 나사 중대발표 급 음악 [2] ㅇㅇㅃ갤로그로 이동합니다. 10.12.03 109 0
222055 나도 코딩스타일 [5] 튀김맛기름(211.202) 10.12.03 162 0
222054 혹시 이런 경험 있으신분 있음?? ㅋㅋㅋㅋㅋ [12] 형들아(220.73) 10.12.03 216 0
222053 이거 왜 안 되는지좀.. [14] 허접(121.169) 10.12.03 667 2
222052 존나 할게 없다 [4] 출판과장갤로그로 이동합니다. 10.12.03 128 0
222051 코딩습관 떡밥 [4] prismatic갤로그로 이동합니다. 10.12.03 137 0
222049 수업이 존나 일찍 끝났다 [4] ㅇㅇㅃ갤로그로 이동합니다. 10.12.03 92 0
222048 광운대 컴퓨터 동아리랑 교류를 시작했는데 [2] 세브(211.117) 10.12.03 250 0
222046 문자열 파싱... [6] rntjr갤로그로 이동합니다. 10.12.03 199 0
222045 포인터 [1] mv(121.182) 10.12.03 72 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2