send 함수 실행시 10038 에러가 뜨면서 디버깅 오류 질문 드립니다.

ehaakdl의 이미지

10038에러에 대해 조사를 해봣는데
윈도우 소켓 설명 : 버클리와 같다. 이 소켓 파라미터 값이 유효한 소켓 핸들이 아니다. (그리고 이것은 절대 유효하지 않다. 이것은 파일 핸들이다. (소켓 핸들이 아니다) 또는 이것은 소켓 핸들이지만 이미 닫힌 핸들이다.)
라고 설명 하더 군요

그래서 소켓 핸들을 반환 하는 함수인 SockCreate(hwnd); 문제가 있을거 같아서 제가 간단한 CS 프로그램을 만들어서 테스트 해봤는데 아무 문제가 없었습니다 그때는 send recv 통신 다됬구요. 그리고 제가 올린 소스에서도 서버랑 연결까지는 됬습니다. 도대체 send 자체에 들어가는 매개변수를 봐서는 다 정상적인거 같은데 왜 그럴가요?

LRESULT CALLBACK WndLoginProc(HWND hwnd, UINT iMsg,
	WPARAM wParam, LPARAM lParam)
{
	HWND hIdEdt, hPwEdt, hLoginbttn;
	HDC hdc = NULL;
	SOCKET hSock = NULL;
	PAINTSTRUCT ps;
	CMNICTHDR LoginInfo;
 
	switch (iMsg)
	{
	case WM_CREATE:
		hSock = SockCreate(hwnd);
		hIdEdt = CreateWindow(_T("edit"), NULL, WS_VISIBLE | WS_CHILD | WS_BORDER, IDZENX, IDZENY, IDX, IDY, hwnd, (HMENU)ID_ID, NULL, NULL); //길이제한 EM_LINELENGTH
		hPwEdt = CreateWindow(_T("edit"), NULL, WS_VISIBLE | ES_PASSWORD | WS_CHILD | WS_BORDER, PWZENX, PWZENY, PWX, PWY, hwnd, (HMENU)ID_PW, NULL, NULL);
		hLoginbttn = CreateWindow(_T("button"), _T("로그인"), WS_VISIBLE | WS_CHILD | WS_BORDER, LOGINBUTTONZENX, LOGINBUTTONZENY, LOGINBUTTONX, LOGINBUTTONY, hwnd, (HMENU)ID_LOGINBUTTON, NULL, NULL);
		break;
	case WM_PAINT:
		hdc = BeginPaint(hwnd, &ps);
		DrawMainBitMap(&hdc);
		TextOut(hdc, TPWX, TPWY, _T("비밀번호"), _tcslen(_T("비밀번호")));
		TextOut(hdc, TIDX, TIDY, _T("아이디"), _tcslen(_T("아이디")));
		EndPaint(hwnd, &ps);
		break;
	case WM_COMMAND:
		switch (LOWORD(wParam))
		{
		case ID_LOGINBUTTON:
			LoginInfo.Command = 0;
			_tcscpy_s(LoginInfo.test,sizeof(LoginInfo.test),_T("test"));
			if (send(hSock, (char*)&LoginInfo, sizeof(CMNICTHDR), 0) == -1) MessageBox(0, 0, 0, 0); //문제의 근원지
 
			break;
		}
		break;
	case WM_DESTROY:
		PostQuitMessage(0);
		break;
	}
	return(DefWindowProc(hwnd, iMsg, wParam, lParam));
}
ehaakdl의 이미지

해결햇습니다.!!
프로시저가 계속 호출당하면서 제가 반환해놓은 소켓번호가 리셋되더군요.. 항상 집중!!..

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.