Từ 1 tới 4 trên tổng số 4 kết quả

Đề tài: server và client không kết nối được do những nguyên nhân nào?

  1. #1
    Ngày gia nhập
    10 2011
    Bài viết
    12

    Mặc định server và client không kết nối được do những nguyên nhân nào?

    Tạo chương trình chat đơn giản, mình đã biên dịc thành công Client và server đều được mà sao khi chạy Client yêu cầu nhập địa chỉ Ip máy chủ mặc định: 127.0.0.1 (IP mặc định của server Khi Client và server cùng chạy trên 1 máy duy nhất) thì lại báo lỗi: "Error Connecting Server" , mong các bạn chỉ ra nguyên nhân giúp mình.
    Mình dùng visio 2010!

    Sau đây là đoạn Code của 2 chương trình client và server:
    Name Project: server.cpp

    Code:
    // server.cpp : Defines the entry point for the console application.
    //
    
    #include "stdafx.h"
    #include "server.h"
    #include "afxsock.h"
    
    #ifdef _DEBUG
    #define new DEBUG_NEW
    #endif
    
    
    // The one and only application object
    
    CWinApp theApp;
    
    using namespace std;
    
    int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
    {
    	int nRetCode = 0;
    
    	HMODULE hModule = ::GetModuleHandle(NULL);
    
    	if (hModule != NULL)
    	{
    		// initialize MFC and print and error on failure
    		if (!AfxWinInit(hModule, NULL, ::GetCommandLine(), 0))
    		{
    			// TODO: change error code to suit your needs
    			_tprintf(_T("Fatal Error: MFC initialization failed\n"));
    			nRetCode = 1;
    		}
    		else
    		{
    			// TODO: code your application's behavior here.
    			AfxSocketInit(NULL);
    			CSocket socketListen, socketAccept, socketConnect;
    
    			char sMsg[4096];
    			int nMsgLen;
    			printf("dang cho ket noi...\n");
    			if (!socketListen.Create(12345) || !socketListen.Listen() || !socketListen.Accept(socketAccept))
    			{
    				printf(" Loi! Khong the ket noi...\n");
    				exit(0);
    			}
    			do
    			{
    				printf(" Da ket noi thanh cong...\n");
    				socketAccept.Receive(&nMsgLen, sizeof(nMsgLen));
    				socketAccept.Receive(sMsg, nMsgLen);
    				sMsg[nMsgLen] = 0; // end of string
    				printf(">%s\n", sMsg);
    
    				if (strcmpi(sMsg, "exit") == 0)
    					break;
    
    				printf("Msg>");
    				gets(sMsg);
    				nMsgLen = strlen(sMsg);
    
    				socketConnect.Send(&nMsgLen, sizeof(nMsgLen));
    				socketConnect.Send(sMsg, nMsgLen);
    			}
    			while (strcmpi(sMsg, "exit") != 0);
    			socketAccept.Close();
    			socketListen.Close();
    			socketConnect.Close();
    		}
    	}
    	else
    	{
    		// TODO: change error code to suit your needs
    		_tprintf(_T("Fatal Error: GetModuleHandle failed\n"));
    		nRetCode = 1;
    	}
    	return nRetCode;
    }

    Name Project: Client.cpp

    Code:
    // Client.cpp : Defines the entry point for the console application.
    //
    
    #include "stdafx.h"
    #include "Client.h"
    #include "afxsock.h"
    
    #ifdef _DEBUG
    #define new DEBUG_NEW
    #endif
    
    
    // The one and only application object
    
    CWinApp theApp;
    
    using namespace std;
    
    int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
    {
    	int nRetCode = 0;
    
    	HMODULE hModule = ::GetModuleHandle(NULL);
    
    	if (hModule != NULL)
    	{
    		// initialize MFC and print and error on failure
    		if (!AfxWinInit(hModule, NULL, ::GetCommandLine(), 0))
    		{
    			// TODO: change error code to suit your needs
    			_tprintf(_T("Fatal Error: MFC initialization failed\n"));
    			nRetCode = 1;
    		}
    		else
    		{
    			// TODO: code your application's behavior here.
    			AfxSocketInit(NULL);
    			CSocket socketConnect, socketAccept;
    			char sMsg[4096], sServerAddress[1024];
    			int nMsgLen;
    			
    			printf("ServerAddress : ");
    			gets(sServerAddress);
    			if (!socketConnect.Create() || 
    				!socketConnect.Connect((LPCTSTR)sServerAddress, (UINT)12345))
    			{
    				printf(" Loi! khong the ket noi server...!");
    				exit(0);
    			}
    			do
    			{
    				printf("Msg>");
    				gets(sMsg);
    				nMsgLen = strlen(sMsg);
    				socketConnect.Send(&nMsgLen, sizeof(nMsgLen));
    				socketConnect.Send(sMsg, nMsgLen);
    
    				if (strcmpi(sMsg, "exit") == 0)
    					break;
    
    				socketAccept.Receive(&nMsgLen, sizeof(nMsgLen));
    				socketAccept.Receive(sMsg, nMsgLen);
    				sMsg[nMsgLen] = 0; // end of string
    				printf(">%s\n", sMsg);
    			}
    			while (strcmpi(sMsg, "exit") != 0);
    			socketConnect.Close();
    			socketAccept.Close();
    		}
    	}
    	else
    	{
    		// TODO: change error code to suit your needs
    		_tprintf(_T("Fatal Error: GetModuleHandle failed\n"));
    		nRetCode = 1;
    	}
    	return nRetCode;
    }

    Ảnh trang thái server sau khi biên dịch đang nghe kết nối từ client:



    Ảnh trang thái Client sau khi biên dịch thành công đang chờ người dùng nhập địa chỉ IP máy chủ để kết nối:


    Đang nhập IP server để kết nối:

    Sau khi xác nhận IP server và báo lỗi :


    Mấy sư huynh giúp mình với nha...!
    Tks!

  2. #2
    Ngày gia nhập
    10 2011
    Bài viết
    12

    có ai giúp mình với được không vậy :|...

  3. #3
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Bạn hãy kiểm tra, tắt hết firewall trên máy bạn trước thử xem.
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  4. #4
    Ngày gia nhập
    10 2011
    Bài viết
    12

    cảm ơn bạn nhé! Mấy cái bạn chỉ mình, mình có làm nhưng không có tác dụng gì cả... Nhưng mình đã tìm được đáp án rồi ^^! tks bạn đã quan tâm bài viết của mình :-*

Các đề tài tương tự

  1. Trả lời: 6
    Bài viết cuối: 28-06-2014, 12:02 PM
  2. Trả lời: 0
    Bài viết cuối: 31-08-2013, 01:18 PM
  3. Socket Không thể xóa Client ngắt kết nối với Server trong danh sách Client đang kết nối
    Gửi bởi thanhtanh trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 1
    Bài viết cuối: 20-10-2012, 04:37 PM
  4. Chạy ứng dụng client/server vc++ trên 2 máy, làm thế nào để client kết nối server?
    Gửi bởi hotritam365 trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 5
    Bài viết cuối: 12-07-2012, 10:20 PM
  5. Có cần cài SQlServer trên máy Client, trong ứng dụng Server Client
    Gửi bởi billsang trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 4
    Bài viết cuối: 28-10-2011, 01:09 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn