private unsafe static void Connect(IntPtr socket, IPEndPoint ipEndPoint) { var endPointAddressBytes = ipEndPoint.Address.GetAddressBytes(); var inAddress = new InAddr(endPointAddressBytes); var sa = new SockaddrIn { sin_family = AddressFamilies.AF_INET, sin_port = WinSock.htons((ushort)ipEndPoint.Port), sin_addr = inAddress }; var errorCode = WinSock.connect(socket, ref sa, sizeof(SockaddrIn)); if (errorCode == WinSock.Consts.SOCKET_ERROR) { WinSock.ThrowLastWsaError(); } }
private static unsafe bool Bind(IntPtr listeningSocket, int listeningPort) { var endPointAddressBytes = IPAddress.Any.GetAddressBytes(); var inAddress = new InAddr(endPointAddressBytes); var sa = new SockaddrIn { sin_family = AddressFamilies.AF_INET, sin_port = WinSock.htons((ushort)listeningPort), sin_addr = inAddress }; var errorCode = WinSock.bind(listeningSocket, ref sa, sizeof(SockaddrIn)); if (errorCode == WinSock.Consts.SOCKET_ERROR) { WinSock.ThrowLastWsaError(); return(false); } return(true); }