[공부 ]네트워크프로그래밍(멀티 쓰레드)
페이지 정보
작성일 19-03-25 01:54본문
Download : [공부자료]네트워크프로그래밍(멀티 쓰레드).docx
int left = len; -` left변수는 아직 읽지않은 데이터 크기를 나타낸다.
else if(received 0)
break;
Recv()함수 리턴값이 0이면 (정상종료) 상대가 데이터를 더 보내지 않을 것 이므로 종료
left -= received; -` left 변수 갱신
ptr += received; -` ptr 변수 갱신
}
return (len - left);
읽은 바이트 수를 리턴한다.
while(left ` 0){ -` 아직 읽지 않은 변수가 있다면 루프를 루프를 돈다
received = recv(s, ptr, left, flags);
if(received SOCKET_ERROR)
return SOCKET_ERROR;
Recv()함수를 호출하고 오류가 발생하면 리턴한다.
![[공부자료]네트워크프로그래밍(멀티 쓰레드)_docx_01_.gif](http://www.allreport.co.kr/View/%5B%EA%B3%B5%EB%B6%80%EC%9E%90%EB%A3%8C%5D%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D(%EB%A9%80%ED%8B%B0%20%EC%93%B0%EB%A0%88%EB%93%9C)_docx_01_.gif)
![[공부자료]네트워크프로그래밍(멀티 쓰레드)_docx_02_.gif](http://www.allreport.co.kr/View/%5B%EA%B3%B5%EB%B6%80%EC%9E%90%EB%A3%8C%5D%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D(%EB%A9%80%ED%8B%B0%20%EC%93%B0%EB%A0%88%EB%93%9C)_docx_02_.gif)
![[공부자료]네트워크프로그래밍(멀티 쓰레드)_docx_03_.gif](http://www.allreport.co.kr/View/%5B%EA%B3%B5%EB%B6%80%EC%9E%90%EB%A3%8C%5D%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D(%EB%A9%80%ED%8B%B0%20%EC%93%B0%EB%A0%88%EB%93%9C)_docx_03_.gif)
![[공부자료]네트워크프로그래밍(멀티 쓰레드)_docx_04_.gif](http://www.allreport.co.kr/View/%5B%EA%B3%B5%EB%B6%80%EC%9E%90%EB%A3%8C%5D%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D(%EB%A9%80%ED%8B%B0%20%EC%93%B0%EB%A0%88%EB%93%9C)_docx_04_.gif)
![[공부자료]네트워크프로그래밍(멀티 쓰레드)_docx_05_.gif](http://www.allreport.co.kr/View/%5B%EA%B3%B5%EB%B6%80%EC%9E%90%EB%A3%8C%5D%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D(%EB%A9%80%ED%8B%B0%20%EC%93%B0%EB%A0%88%EB%93%9C)_docx_05_.gif)
![[공부자료]네트워크프로그래밍(멀티 쓰레드)_docx_06_.gif](http://www.allreport.co.kr/View/%5B%EA%B3%B5%EB%B6%80%EC%9E%90%EB%A3%8C%5D%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D(%EB%A9%80%ED%8B%B0%20%EC%93%B0%EB%A0%88%EB%93%9C)_docx_06_.gif)
[공부자료]네트워크프로그래밍(멀티 쓰레드) , [공부자료]네트워크프로그래밍(멀티 쓰레드)기타시험족보 , 공부자료 네트워크프로그래밍 멀티 쓰레드
순서
Download : [공부자료]네트워크프로그래밍(멀티 쓰레드).docx( 83 )
설명
공부자료,네트워크프로그래밍,멀티,쓰레드,기타,시험족보
[공부 ]네트워크프로그래밍(멀티 쓰레드)
네트워크 프로그래밍
`project1. 멀티 스레드를 이용한 파일 수신 서버 작성`
`목차`
1 소스코드 說明(설명)
2 실행화면 캡쳐
Server
#pragma comment(lib, `ws2_32`)
#include `winsock2.h`
#include `stdlib.h`
#include `stdio.h`
#define SERVERPORT 9000
#define BUFSIZE 512
// 소켓 함수 오류 출력 후 종료 -` 심한 오류
void err_quit(char msg)
{
LPVOID lpMsgBuf;
FormatMessage( -` 오류 코드를 문자열로 바꾸는 함수
FORMAT_MESSAGE_ALLOCATE_BUFFER|
FORMAT_MESSAGE_FROM_SYSTEM,
NULL, WSAGetLastError(), -` WSAGetLastError-` 에러 코드가 넘어옴
MAKELANGID(LANG_N...
네트워크 프로그래밍
`project1. 멀티 스레드를 이용한 파일 수신 서버 작성`
`목차`
1 소스코드 說明(설명)
2 실행화면 캡쳐
Server
#pragma comment(lib, `ws2_32`)
#include `winsock2.h`
#include `stdlib.h`
#include `stdio.h`
#define SERVERPORT 9000
#define BUFSIZE 512
// 소켓 함수 오류 출력 후 종료 -` 심한 오류
void err_quit(char msg)
{
LPVOID lpMsgBuf;
FormatMessage( -` 오류 코드를 문자열로 바꾸는 함수
FORMAT_MESSAGE_ALLOCATE_BUFFER|
FORMAT_MESSAGE_FROM_SYSTEM,
NULL, WSAGetLastError(), -` WSAGetLastError-` 에러 코드가 넘어옴
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
(LPTSTR)&lpMsgBuf, 0, NULL); -` &lpMsgBuf -` 오류문자열 처음 주소
//MessageBox(NULL, (LPCTSTR)lpMsgBuf, msg, MB_ICONERROR) ;
-`lpMsgBuf -` long point(타입) MsgBuf(의미)
LocalFree(lpMsgBuf);
exit(-1);
}
// 소켓 함수 오류 출력 -` 심하지 않은 에러발생시
void err_display(char msg)
{
LPVOID lpMsgBuf;
FormatMessage(
FORMAT_MESSAGE_ALLOCATE_BUFFER|
FORMAT_MESSAGE_FROM_SYSTEM,
NULL, WSAGetLastError(),
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
(LPTSTR)&lpMsgBuf, 0, NULL…(skip) );
printf(`[%s] %s`, msg, (LPCTSTR)lpMsgBuf); -` 출력만 시켜준다. 정상종료를 제외하면 left 변수는 항상 0이므로 리턴값은 0
}
// 클라이언트와 데이터 통신
DWORD WINAPI ProcessClient(LPVOID arg)
{
SOCKET client_sock = (SOCKET)arg;
int retval;
SOCKADDR_IN clientaddr;
int addrlen;
char buf[BUFSIZE+1];
// 클라이언트 정보 얻기
addrlen = sizeof(clientaddr);
getpe
[공부 ]네트워크프로그래밍(멀티 쓰레드)
시험족보/기타
다.
LocalFree(lpMsgBuf);
}
// 사용자 定義(정의) 데이터 수신 함수// =` 추가
int recvn(SOCKET s, char buf, int len, int flags)
{
int received; -` recv()함수의 리턴값을 저장하는 변수
char ptr = buf; -` 포인터 변수 ptr이 애플리케이션 버퍼의 처음 주소를 가리키고 데이터를 읽을 때마다 증가한다.