/// <summary> /// 处理登录返回信息 /// </summary> /// <param name="state"></param> private void ProcessLogin(StateObject state) { try { if (state.Package.ST == 0) { //asyncSocketServer.RemoveDisconnectedSession(state); _logManager.Info($"{MessageType.Login}{state.Machine.MachineCode} => 登录成功"); state.IsLogined = true; state.ResultBytes.Clear(); state.Package.CID = FuncCode.EnumAllData; Send(state); } else { //登录失败,关闭此次会话 _logManager.Info($"{MessageType.Login}{state.Machine.MachineCode} => 登录失败,关闭此次会话"); LoginResultPackage package = SocketHelper.BytesToStruct <LoginResultPackage>(state.ResultBytes.ToArray()); package.ERR = SocketHelper.NetworkToHost(package.ERR); package.RV = SocketHelper.NetworkToHost(package.RV); state.IsLogined = false; } } catch (SocketException e) { _asyncSocketServer.CloseAndDisposeConnection(state, e, ErrorLevel.Level1); } catch (Exception e) { _asyncSocketServer.CloseAndDisposeConnection(state, e, ErrorLevel.Level1); } }
/// <summary> /// 处理推送数据返回结果 /// </summary> /// <param name="state"></param> private void ProcessRequestForPush(StateObject state) { try { if (state.Package.ST == 0) { //支持推送数据 state.IsSupported = true; state.ResultBytes.Clear(); //开始接受数据 ReceiveHead(state); } else { //登录失败,关闭此次会话 var package = SocketHelper.BytesToStruct <ErrorPackage>(state.ResultBytes.ToArray()); package.ERR = SocketHelper.NetworkToHost(package.ERR); package.RV = SocketHelper.NetworkToHost(package.RV); state.IsSupported = false; _asyncSocketServer.CloseAndDisposeConnection(state, new Exception("不支持推送数据,错误代码为" + package.ERR), ErrorLevel.Level1); } } catch (SocketException e) { _asyncSocketServer.CloseAndDisposeConnection(state, e, ErrorLevel.Level1); } catch (Exception e) { _asyncSocketServer.CloseAndDisposeConnection(state, e, ErrorLevel.Level1); } }
/// <summary> /// 判断任务是否添加完成 /// </summary> /// <param name="taskid"></param> /// <param name="baseUrl"></param> /// <param name="Key"></param> /// <param name="Signature"></param> /// <returns></returns> private bool QuerySpeedofprogress(string taskid, string baseUrl, string Key, string Signature) { int i = 0; bool falg = false; //最多只循环100次以免任务卡死死循环 while (i < 100) { string msg1 = SocketHelper.QuerySpeedofprogress(taskid, baseUrl, Key, Signature); progress p1 = JsonConvert.DeserializeObject <progress>(msg1); if (p1 != null) { if (!p1.data.isFinished || p1.data.percent != 100) { falg = false; i++; continue; } else { falg = true; i = 100; break; } } i++; } return(falg); }
public static void ReceiveCallback(IAsyncResult ar) { if (Main.is_debug) { Main.Logger.InfoFormat("Begin receiving callback ReceiveCallback()"); } object[] asyncState = (object[])ar.AsyncState; byte[] bytes = (byte[])asyncState[0]; Socket socket = (Socket)asyncState[1]; int count = socket.EndReceive(ar); if (count <= 0) { return; } Main._receiveMessage = Main.EncodingAscii.GetString(bytes, 0, count); SocketHelper socketHelper = new SocketHelper(); if (Main.is_debug) { Main.Logger.InfoFormat("Finish initing SocketHelper"); } string s = socketHelper.ProcessMsg(Main._receiveMessage); socket.Send(Main.EncodingAscii.GetBytes(s)); socket.Shutdown(SocketShutdown.Both); socket.Close(); if (!Main.is_debug) { return; } Main.Logger.InfoFormat("Finish receiving callback ReceiveCallback() "); }
public async Task SimpleTest() { var random = new Random(); var(clientSocket, serverSocket) = SocketHelper.GetSocketPair(); await using var batchActionDispatcher = new BatchActionDispatcher(TimeSpan.FromMilliseconds(10)); var bridgeConnectionOptions = new BridgeConnectionOptions(1024 * 1024 * 256); await using var clientBridgeConnection = new BridgeConnection(new SocketCap(clientSocket), null, null, batchActionDispatcher, BytesPool.Shared, bridgeConnectionOptions); await using var serverBridgeConnection = new BridgeConnection(new SocketCap(serverSocket), null, null, batchActionDispatcher, BytesPool.Shared, bridgeConnectionOptions); var clientMultiplexerOption = new OmniConnectionMultiplexerOptions(OmniConnectionMultiplexerType.Connected, TimeSpan.FromMinutes(1), 3, 1024 * 1024 * 256, 3); await using var clientMultiplexer = OmniConnectionMultiplexer.CreateV1(clientBridgeConnection, batchActionDispatcher, BytesPool.Shared, clientMultiplexerOption); var serverMultiplexerOption = new OmniConnectionMultiplexerOptions(OmniConnectionMultiplexerType.Accepted, TimeSpan.FromMinutes(1), 3, 1024 * 1024 * 256, 3); await using var serverMultiplexer = OmniConnectionMultiplexer.CreateV1(serverBridgeConnection, batchActionDispatcher, BytesPool.Shared, serverMultiplexerOption); var clientMultiplexerHandshakeTask = clientMultiplexer.HandshakeAsync().AsTask(); var serverMultiplexerHandshakeTask = serverMultiplexer.HandshakeAsync().AsTask(); await Task.WhenAll(clientMultiplexerHandshakeTask, serverMultiplexerHandshakeTask); var connectTask = clientMultiplexer.ConnectAsync().AsTask(); var acceptTask = serverMultiplexer.AcceptAsync().AsTask(); await TestHelper.RandomSendAndReceive(random, connectTask.Result, acceptTask.Result); await TestHelper.RandomSendAndReceive(random, acceptTask.Result, connectTask.Result); }
public void Search() { var getMoviesResponse = SocketHelper.ExecuteRequest("getMovies"); Movies = JsonConvert.DeserializeObject <List <Movie> >(getMoviesResponse, new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.Objects }); switch (SearchCriteria) { case "Genre": { if (!string.IsNullOrEmpty(SearchQuery)) { Movies = Movies.Where(x => x.Genre != null && x.Genre.ToLower().StartsWith(SearchQuery.ToLower())).ToList(); } break; } case "Title": { if (!string.IsNullOrEmpty(SearchQuery)) { Movies = Movies.Where(x => x.Title.ToLower().StartsWith(SearchQuery.ToLower())).ToList(); } break; } } }
/// <summary> /// 获取Adb内部版本,可能出现的错误,无法连接 /// </summary> /// <param name="error">错误回调</param> /// <returns></returns> public static bool VerifyVersion(Action <ErrorResult> error) { // 连接到ADB服务 var socket = SocketHelper.Connect(); if (socket == null) { // 无法链接到ADB服务 ErrorResult.InvokeError(error, ConnectError.AdbServerUnable, "Socket 无法链接到ADB服务端(5037)端口!"); return(false); } // 执行查询内部版本命令 const string cmd = "host:version"; socket.Send(Encoding.ASCII.GetBytes($"{cmd.Length:X4}{cmd}")); // 读取结果,包含状态和版本 var res = SocketHelper.GetResult(socket); var flag = res.Okay && string.Equals(res.Data, AdbVersion); try { socket.Shutdown(SocketShutdown.Both); socket.Close(); } catch (Exception) { // ignored } return(flag); }
public void Start() { mGingerSocketServer = new GingerSocketServer2(); mGingerSocketServer.MessageHandler = MessageHandler; ServerPort = SocketHelper.GetOpenPort(); mGingerSocketServer.StartServer(ServerPort); }
private void Connect_Click(object sender, RoutedEventArgs e) { saveCursor = this.Cursor; Mouse.OverrideCursor = Cursors.Wait; Connect_Button.IsEnabled = false; try { senderSock = SocketHelper.Connect(textBox.Text); IPEndPoint remoteIpEndPoint = senderSock.RemoteEndPoint as IPEndPoint; pageforNewConnection.reportActivity("\n Client connected to : " + remoteIpEndPoint, Brushes.Blue, FontWeights.Regular); //faccio prima anche se potrei fare dopo, cosi mi porto avanti prima di fare la recv, ma forse non va bene pageforNewConnection.addServer(senderSock); JsonObject jsObj = SocketHelper.ReceiveImmediatly <JsonObject>(senderSock); pageforNewConnection.firstInfo(jsObj, senderSock); Switcher.Switch(pageforNewConnection); //forse meglio spostare, decido quando cambiare pagina } catch (Exception ex) { writeError(ex.Message); } finally { Connect_Button.IsEnabled = true; Mouse.OverrideCursor = saveCursor; } }
/// <summary> /// 处理接收到的数据项 /// </summary> /// <param name="state"></param> private void ProcessPushData(StateObject state) { try { // All the data has arrived; put it in response. var package = SocketHelper.BytesToStruct <PushHeadPackage>(state.ResultBytes.ToArray()); package.Count = SocketHelper.NetworkToHost(package.Count); _logManager.Info($"{MessageType.ResponseDataItem}{state.Machine.MachineCode} => 推送数据项{package.Count}个"); state.CollectDataCount = package.Count; state.ResultBytes.Clear(); if (package.Count == 0) { state.Package.CID = FuncCode.PushDataReply; Send(state); } else { state.WorkSocket.BeginReceive(state.Buffer, 0, 8, 0, ReceiveRecordHeadCallback, state); } } catch (SocketException e) { _asyncSocketServer.CloseAndDisposeConnection(state, e, ErrorLevel.Level1); } catch (Exception e) { _asyncSocketServer.CloseAndDisposeConnection(state, e, ErrorLevel.Level1); } }
private bool Invoke(BaseRequestModel model, UserModel user, SocketHelper socket, Dictionary <string, string> data) { var middlewaresForThisDispatcher = socket.myMiddlewares .Where(x => x.Key == Id) //.Select(xx => xx.Value) .SelectMany(x => x.Value.FindAll(m => m.Flags.Contains((ushort)RequestFlag.ForAll) || m.Flags.Contains(model.Flag))); //Logger.Debug($"{Name} PreProcess midlewares start"); foreach (var middleware in middlewaresForThisDispatcher) { middleware.PreProcess(model, user, socket, data); } //Logger.Debug($"{Name} PreProcess midlewares finish"); //Logger.Debug($"{Name} Handlers start"); var handled = InvokeHandlers(model, user, socket, data); //Logger.Debug($"{Name} Handlers finish"); //Logger.Debug($"{Name} PostProcess midlewares start"); foreach (var middleware in middlewaresForThisDispatcher) { middleware.PostProcess(model, user, socket, data); } //Logger.Debug($"{Name} PostProcess midlewares finish"); return(handled); }
static DistributedCache() { var q = from t in ConfigurationManager.AppSettings["DefaultCacheServerNodes"].Split(',') let val = t.Split('@') let cred = val.Length == 2 ? val[0].Split(':') : null select new ServerNode { Credentials = cred.Length == 2 ? new NetworkCredential(cred[0].Trim(), cred[1].Trim()) : null, IPEndPoint = SocketHelper.ParseEndPoint(val[1].Trim()), ReadOnly = true }; DefaultCacheServerNodes = q.ToArray(); if (DefaultCacheServerNodes.Length == 0) { throw new InvalidOperationException("DefaultCacheServerNodes"); } DefaultCacheServerNodes[0].ReadOnly = false; if (!double.TryParse(ConfigurationManager.AppSettings["DefaultPolicyExpiresMinutes"], out DefaultPolicyExpiresMinutes)) { DefaultPolicyExpiresMinutes = 10D; } EmptyDictionary = new Dictionary <string, object>(0); }
public static void ClassInitialize(TestContext TestContext) { RemoteGridIP = SocketHelper.GetLocalHostIP(); RemoteGridPort = SocketHelper.GetOpenPort(); // We start a Ginger grid RemoteGingerGrid = new GingerGrid(RemoteGridPort); RemoteGingerGrid.Start(); // Add 2 Ginger Nodes with Dummy Driver DummyDriver DummyDriver1 = new DummyDriver(); Task.Factory.StartNew(() => { GingerNodeStarter gingerNodeStarter = new GingerNodeStarter(); gingerNodeStarter.StartNode("N1", new DummyDriver(), RemoteGridIP, RemoteGridPort); gingerNodeStarter.StartNode("N2", new DummyDriver(), RemoteGridIP, RemoteGridPort); gingerNodeStarter.Listen(); }); Stopwatch stopwatch = Stopwatch.StartNew(); while (RemoteGingerGrid.NodeList.Count < 2 && stopwatch.ElapsedMilliseconds < 5000) // max 5 seconds { Thread.Sleep(50); } }
public override void ExecuteCommand(ClientManager clientManager, Common.Protobuf.Command command) { CommandInfo cmdInfo; try { cmdInfo = ParseCommand(command, clientManager); } catch (System.Exception exc) { if (!base.immatureId.Equals("-2")) { _serializedResponsePackets.Add(ResponseHelper.SerializeExceptionResponse(exc, command.requestID, command.commandID)); } return; } try { SocketHelper.TransferConnection(clientManager, cmdInfo.CacheId, command, acknowledgementId); } catch (System.Exception ex) { _serializedResponsePackets.Add(ResponseHelper.SerializeExceptionResponse(ex, command.requestID, command.commandID)); } }
public string TransferFile(string path) { var isFile = true; var bytes = File.ReadAllBytes(path); var fileInfo = Encoding.UTF8.GetBytes("swiper-4.5.0.zip,1"); //SendPacket(1, 2, fileInfo,isFile); var count = (int)Math.Ceiling(bytes.Length / _bufferLength * 1.0); var totalCount = (ushort)(count + 1); SendPacket(1, totalCount, fileInfo, isFile); var startIndex = 0; var length = _bufferLength; for (int i = 1; i <= count; i++) { ushort index = (ushort)(i + 1); byte[] data = new byte[length]; Buffer.BlockCopy(bytes, startIndex, data, 0, length); SendPacket(index, totalCount, data, isFile); startIndex = _bufferLength; length = i == count ? bytes.Length - _bufferLength : _bufferLength; } var result = SocketHelper.Receive(_socket); return(result); }
// Функция изменения состояния сервера private void ChangeStatus() { SocketHelper.ChangeStatus(); // Изменяет состояние if (SocketHelper.Status) // Узнаёт, запущен ли сервер // Если запущен, меняет форму { statusLabel.Text = "Сервер запущен"; button1.Text = "Остановить сервер"; button2.Visible = true; // И запускает новый поток new Thread(() => { Thread.CurrentThread.IsBackground = true; while (SocketHelper.Status) { // Который отображает количество подключенных клиентов connectedLabel.BeginInvoke((MethodInvoker)(() => { connectedLabel.Text = $"Подключено {ClientHandler.testings.Count} студентов"; })); // И делает это раз в секунду Thread.Sleep(1000); } }).Start(); } else { // Если сервер не запущен, меняет форму statusLabel.Text = "Сервер отключен"; button1.Text = "Запустить сервер"; connectedLabel.Text = ""; button2.Visible = false; } }
public void enviarlistitaaa() { string str = ""; string str2 = ""; if (listanombres.Count > 0 && listalinks.Count > 0 && SocketHelper.IsConnected(cliente)) { foreach (string prr2 in listanombres) { str += prr2 + ";"; } str = str.Replace('$', ' '); str = str.Remove(str.Length - 1, 1); foreach (string prr in listalinks) { str2 += prr + ";"; } str2 = str2.Remove(str2.Length - 1, 1); cliente.Client.Send(Encoding.UTF8.GetBytes("listaactual$" + str + "$" + str2)); } }
public static CommandResult Execute(byte[] data) { try { string msg = SocketHelper.GetString(data); string[] parts = msg.Split(' '); string name = parts[0].ToLower(); if (Commands.ContainsKey(name)) { List <string> args = new List <string>(); for (int i = 1; i < parts.Length; i++) { args.Add(parts[i]); } ICommand command = Commands[name]; return(command.Execute(args)); } } catch (Exception ex) { //Console.WriteLine("Error At CommandManager.Execute:" + ex.Message); Log.error(ex); } return(null); }
public void RemoteObjectProxyTest1() { bool IsReady = false; Task t = new Task(() => { RemoteObjectsServer s = new RemoteObjectsServer(); s.Start(15111); // TODO: get free port s.GetObjectHandler = GetObjectHandler; IsReady = true; }); t.Start(); Stopwatch st = Stopwatch.StartNew(); while (!IsReady && st.ElapsedMilliseconds < 10000) { Thread.Sleep(50); } RemoteObjectsClient c = new RemoteObjectsClient(); //TODO: temp get local host c.Connect(SocketHelper.GetDisplayHost(), SocketHelper.GetDisplayPort()); IDisplay calc1 = c.GetObject <IDisplay>("aa1"); int total = calc1.Add(2, 5); Assert.AreEqual(7, total); }
/// <summary> /// 测试链接 /// </summary> /// <param name="port"></param> /// <param name="error"></param> /// <returns></returns> public bool TestConnect(int port, Action <ErrorResult> error) { // 连接到tcp端口失败 Connect(port, error); var flag = socket != null; // 连接失败,退出 if (!flag) { return(false); } // 发送测试连接的命令 SocketHelper.SendTransportCommand(socket, 101, "test"); var msg = SocketHelper.GetTrandportMessage(socket); var cmd = Command.Parse(msg); if (cmd == null) { return(false); } switch (cmd.Cmd) { case Command.SUCCESS: // 测试连接成功! break; case Command.LACK_PERMISITION: // 缺少必须权限 Error(ConnectError.ApkLackPermisions, "APK缺少必须权限!"); return(false); } OnExit(true); return(true); }
// Когда поле заполнено окончательно // и пользователь переключается на другой элемент private void textBox1_Leave(object sender, EventArgs e) { // Сначала проверяем введенный IP-адрес string line = textBox1.Text; var arr = line.Split('.'); if (arr.Length != 4) { MessageBox.Show("Некорректный IP адрес", "Некорректный IP адрес2", MessageBoxButtons.OK); textBox1.Select(); return; } foreach (var item in arr) { if (Int32.Parse(item) > 256) { MessageBox.Show("Некорректный IP адрес", "Некорректный IP адрес2", MessageBoxButtons.OK); textBox1.Select(); return; } } // А затем сохраняем его Properties.Settings.Default.IP = line; Properties.Settings.Default.Save(); SocketHelper.NotificateIpChanged(); }
public static void ClassInitialize(TestContext TestContext) { // We start a Ginger grid int HubPort = SocketHelper.GetOpenPort(); GG = new GingerGrid(HubPort); GG.Start(); // Add 2 Ginger Nodes with Dummy Driver // TODO: check how to externalize // make it NodeInfo and drivers capabilities DummyDriver DummyDriver1 = new DummyDriver(); DriverCapabilities DC = new DriverCapabilities(); DC.OS = "Windows"; //TODO: use const DC.Platform = "Web"; //TODO: use const GingerNode GN = new GingerNode(DC, DummyDriver1); GN.StartGingerNode("N1", HubIP: SocketHelper.GetLocalHostIP(), HubPort: HubPort); DummyDriver DummyDriver2 = new DummyDriver(); DriverCapabilities DC2 = new DriverCapabilities(); DC2.OS = "Mac"; DC2.Platform = "Java"; GingerNode GingerNode2 = new GingerNode(DC2, DummyDriver2); GingerNode2.StartGingerNode("N2", HubIP: SocketHelper.GetLocalHostIP(), HubPort: HubPort); }
static void StartServer(IApplication app) { if (ws != null) { return; } var ip = IPAddress.Loopback; port = SocketHelper.GetRandomUnusedPort(ip); ws = new($"ws://{ip}:{port}"); if (app is IDisposableHolder dh) { Disposable.Create(() => { ws?.Dispose(); ws = null; tempAes?.Dispose(); tempAes = null; }).AddTo(dh); } ws.Start(socket => { socket.OnMessage = async message => await OnMessage(message, socket); }); }
/// <summary> /// 调用摄像头门卫录入拜访人脸照片 /// </summary> /// <param name="keyValue"></param> /// <returns></returns> public void SaveFileImgForm(CarUserFileImgEntity entity) { Repository <CarUserFileImgEntity> inlogdb = new Repository <CarUserFileImgEntity>(DbFactory.Base()); CarUserFileImgEntity old = inlogdb.FindEntity(entity.ID); if (old != null) { if (string.IsNullOrEmpty(old.Userimg)) {//人脸信息未录入 #region 获取海康地址和秘钥 DataItemDetailService data = new DataItemDetailService(); var pitem = data.GetItemValue("Hikappkey"); //海康服务器密钥 var baseurl = data.GetItemValue("HikBaseUrl"); //海康服务器地址 string Key = string.Empty; string Signature = string.Empty; if (!string.IsNullOrEmpty(pitem)) { Key = pitem.Split('|')[0]; Signature = pitem.Split('|')[1]; } #endregion FacedataEntity face = new FacedataEntity(); List <FacedataEntity> FaceList = new List <FacedataEntity>(); face.UserId = old.ID; face.ImgData = entity.Imgdata; FaceList.Add(face); SocketHelper.UploadFace(FaceList, baseurl, Key, Signature); } old.Userimg = entity.Userimg; old.Imgdata = entity.Imgdata; inlogdb.Update(old); } }
public ClientHandler(TcpClient client) { //TODO: blet try blet blet try { socketHelper = new SocketHelper(); socketHelper.accept(client); string command = socketHelper.receiveMessage(); switch (command) { case "get": get(); break; case "send": send(); break; default: break; } socketHelper.close(); } catch (Exception e) { Console.WriteLine(e.Message + "\nStackTrace:\n" + e.StackTrace); } }
private void SplitPackets() { var m_readPos = 0; while ((m_recvBufferOffset - m_readPos) > HEAD_LENGTH) { //Get package length var pkgLength = NetHelper.PacketSize(SocketHelper.readUint(m_readPos, m_recvBuffer)); // 剩下的数据不够一个完整的包则放弃解析 if (pkgLength > (m_recvBufferOffset - m_readPos)) { break; } var packet = new byte[pkgLength]; Buffer.BlockCopy(m_recvBuffer, m_readPos, packet, 0, pkgLength); processPacket(packet); m_readPos += pkgLength; } // 还有没有读取完毕的 往前挪一下 if (m_readPos > 0 && m_readPos < m_recvBufferOffset) { Buffer.BlockCopy(m_recvBuffer, m_readPos, m_recvBuffer, 0, m_recvBufferOffset - m_readPos); } // 伸缩 m_recvBufferOffset -= m_readPos; }
public override void ExecuteCommand(ClientManager clientManager, Alachisoft.NCache.Common.Protobuf.Command command) { try { cmdInfo = ParseCommand(command, clientManager); } catch (Exception exc) { if (SocketServer.Logger.IsErrorLogsEnabled) { SocketServer.Logger.NCacheLog.Error("InitializeCommand.Execute", clientManager.ClientSocket.RemoteEndPoint.ToString() + " parsing error " + exc.ToString()); } { _serializedResponsePackets.Add(Alachisoft.NCache.Common.Util.ResponseHelper.SerializeExceptionResponse(exc, command.requestID, command.commandID)); } return; } try { SocketHelper.TransferConnection(clientManager, cmdInfo.CacheId, command, _acknowledgmentId); } catch (Exception exc) { if (SocketServer.Logger.IsErrorLogsEnabled) { SocketServer.Logger.NCacheLog.Error("InitializeCommand.Execute", clientManager.ClientSocket.RemoteEndPoint.ToString() + " : " + clientManager.ClientID + " failed to connect to " + cmdInfo.CacheId + " Error: " + exc.ToString()); } _serializedResponsePackets.Add(GetOptimizedResponse(Alachisoft.NCache.Common.Util.ResponseHelper.SerializeExceptionResponse(exc, command.requestID, command.commandID))); } }
public TaskManager() { //metto per vedere come mai si chiude try { InitializeComponent(); LoadListItems(); sockhelper = new SocketHelper(); //aggiungo questo metodo all'evento, chiamato quando riceve pacchetto json sockhelper.Response += updateInfo; //aggiungo questo metodo all'evento, chiamato quando server si disconnette SocketHelper.End += removeServer; Loaded += MyLoadedRoutedEventHandler; } catch (Exception ex) { MessageBox.Show(ex.ToString()); } /*ListView lv = (ListView)RecursiveVisualChildFinder<ListView>(TabControl1); * if (lv.Name == "lvPrograms") * { * GridViewColumn column =lv.Child * } * ((System.ComponentModel.INotifyPropertyChanged)column).PropertyChanged += (sender, e) => * { * if (e.PropertyName == "ActualWidth") * { * //do something here... * } * };*/ }
/// <summary> /// Start service on node and connect to local GingerGrid /// </summary> /// <param name="gingerServiceObject">Service object with [GingerService] annotation</param> /// <param name="name">Name which will apear in GingerGrid</param> public void StartNode(string name, object gingerServiceObject) { GingerNode gingerNode = new GingerNode(gingerServiceObject); gingerNode.StartGingerNode(name, SocketHelper.GetLocalHostIP(), 15004); // !!!!!!!!!!!!!!!! Get free port, but prefer 15001 if free CheckAddGingerNode(gingerNode); }
private void buttonInboundSend_Click(object sender, EventArgs e) { string sendData = this.textBoxClientSend.Text; //SocketResult result = SocketHelper.SendData("127.0.0.1", (int)this.numericUpDownClientPort.Value, sendData); SocketConfig config = new SocketConfig(); config.Port = (int)this.numericUpDownClientPort.Value; config.IPAddress = "127.0.0.1"; config.SendEndSign = "</XMLRequestMessage>"; config.ReceiveEndSign = "</XMLResponseMessage>"; config.IncludeHeader = false; SocketResult result = SocketHelper.SendData(config, sendData); if (result.Type == SocketResultType.Success) { this.textBoxClientReceive.Text = result.ReceivedString; } else { //MessageBox.Show(result.ExceptionInfor, result.Type.ToString()); } Application.DoEvents(); }
static void createListener() { // Create an instance of the TcpListener class. TcpListener tcpListener = null; //IPAddress ipAddress = new IPAddress(0x6501A8C0); IPAddress ipAddress = new IPAddress(0x6401A8C0); try { // Set the listener on the local IP address // and specify the port. tcpListener = new TcpListener(ipAddress, 1234); tcpListener.Start(); Console.WriteLine( "Waiting for a connection..."); } catch (Exception e) { var output = "Error: " + e.ToString(); Console.WriteLine(output); } while (true) { // Always use a Sleep call in a while(true) loop // to avoid locking up your CPU. Thread.Sleep(70); // Create a TCP socket. // If you ran this server on the desktop, you could use // Socket socket = tcpListener.AcceptSocket() // for greater flexibility. TcpClient tcpClient = tcpListener.AcceptTcpClient(); // Read the data stream from the client. while (true) { Thread.Sleep(5); byte[] bytes = new byte[50]; NetworkStream stream = tcpClient.GetStream(); //if (!stream.DataAvailable) break; stream.Read(bytes, 0, bytes.Length); SocketHelper helper = new SocketHelper(); helper.processMsg(tcpClient, stream, bytes); } } }
public MainPage() { this.InitializeComponent(); // Synchronization context _synchronizationContext = SynchronizationContext.Current; // Events on connectivity Utils.EnableConnectivityCheck(); NetworkInformation.NetworkStatusChanged += new NetworkStatusChangedEventHandler(_OnGotWlanConnected); // Sockets _socketHelper = new SocketHelper(); _socketHelper.OnGotImageCallback = _ImageChanged; _socketHelper.OnGotSocketConnection = _OnSocketConnection; _OnGotWlanConnected(null); // Configure UI ConnectedOrNot.Fill = new SolidColorBrush(Colors.Red); // Configure screen touch FullScreenImage.Tapped += _ImageTapped; }