첨부 실행 코드는 나눔고딕코딩 폰트를 사용합니다.
본 블로그는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 블로그 콘텐츠 향상을 위해 쓰여집니다.

728x90
반응형
728x170
using System;
using System.Net;
using System.Net.Sockets;

#region 서버 연결하기 - ConnectToserver(targetIPEndPoint, port, timeOutMillisecondCount)

/// <summary>
/// 서버 연결하기
/// </summary>
/// <param name="targetIPEndPoint">타겟 IP 종점</param>
/// <param name="port">포트</param>
/// <param name="timeOutMillisecondCount">타임아웃(밀리초)</param>
/// <returns>소켓</returns>
public static Socket ConnectToserver(IPEndPoint targetIPEndPoint, int port, int timeOutMillisecondCount)
{
    Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

    try
    {
        socket.Blocking = false;

        socket.Connect(targetIPEndPoint);

        return socket;
    }
    catch(SocketException socketException)
    {
        if(socketException.ErrorCode != 10035)
        {
            socket.Close();

            throw;
        }

        int timeOutMicrosecondCount = timeOutMillisecondCount * 1000;

        if(!socket.Poll(timeOutMicrosecondCount, SelectMode.SelectWrite))
        {
            socket.Close();

            throw new Exception("The host failed to connect");
        }

        socket.Blocking = true;

        return socket;
    }
}

#endregion
728x90
반응형
그리드형
Posted by 사용자 icodebroker
TAG , ,

댓글을 달아 주세요