primus.co.kr [공부 ]네트워크프로그래밍(멀티 쓰레드) > primus3 | primus.co.kr report

[공부 ]네트워크프로그래밍(멀티 쓰레드) > primus3

본문 바로가기

뒤로가기 primus3

[공부 ]네트워크프로그래밍(멀티 쓰레드)

페이지 정보

작성일 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 [공부자료]네트워크프로그래밍(멀티 쓰레드)_docx_02_.gif [공부자료]네트워크프로그래밍(멀티 쓰레드)_docx_03_.gif [공부자료]네트워크프로그래밍(멀티 쓰레드)_docx_04_.gif [공부자료]네트워크프로그래밍(멀티 쓰레드)_docx_05_.gif [공부자료]네트워크프로그래밍(멀티 쓰레드)_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이 애플리케이션 버퍼의 처음 주소를 가리키고 데이터를 읽을 때마다 증가한다.
전체 19,990건 1 페이지
해당자료의 저작권은 각 업로더에게 있습니다.

evga.co.kr 은 통신판매중개자이며 통신판매의 당사자가 아닙니다.
따라서 상품·거래정보 및 거래에 대하여 책임을 지지 않습니다.
Copyright © primus.co.kr. All rights reserved.
PC 버전으로 보기