public virtual async Task <ReceiveMessage> GetMessage() { var networkStream = Client.GetStream(); // Message Type ReceiveMessageType messageType = ReceiveMessageType.None; var messageTypeBuffer = new byte[4]; var messageTypeBufferBytesRead = 0; while (messageTypeBufferBytesRead < 4) { var bytesRead = await networkStream.ReadAsync(messageTypeBuffer, messageTypeBufferBytesRead, 4 - messageTypeBufferBytesRead); if (bytesRead == 0) { return(null); } messageTypeBufferBytesRead += bytesRead; } messageType = (ReceiveMessageType)BitConverter.ToInt32(messageTypeBuffer, 0); // Message Size int messageSize = 0; var messageSizeBuffer = new byte[4]; var messageSizeBufferBytesRead = 0; while (messageSizeBufferBytesRead < 4) { var bytesRead = await networkStream.ReadAsync(messageSizeBuffer, messageSizeBufferBytesRead, 4 - messageSizeBufferBytesRead); if (bytesRead == 0) { return(null); } messageSizeBufferBytesRead += bytesRead; } messageSize = BitConverter.ToInt32(messageSizeBuffer, 0); // Message Data var messageData = new byte[messageSize]; var messageDataBytesRead = 0; while (messageDataBytesRead < messageSize && messageSize > 0) { var bytesRead = await networkStream.ReadAsync(messageData, messageDataBytesRead, messageSize - messageDataBytesRead); if (bytesRead == 0) { return(null); } messageDataBytesRead += bytesRead; } return(BuildMessage(messageType, messageSize, messageData)); }
public ChunkCompletedMessage(ReceiveMessageType messageType, int messageSize, byte[] messageData) : base(messageType, messageSize, messageData) { SceneId = BitConverter.ToInt32(messageData, 0); ChunkId = BitConverter.ToInt32(messageData, 4); ColorData = messageData.Skip(8).ToArray(); }
protected virtual ReceiveMessage BuildMessage(ReceiveMessageType messageType, int messageSize, byte[] messageData) { switch (messageType) { case ReceiveMessageType.ChunkRequested: return(new ChunkRequestedMessage(messageType, messageSize, messageData)); case ReceiveMessageType.ChunkCompleted: return(new ChunkCompletedMessage(messageType, messageSize, messageData)); default: return(null); } }
private void button3_Click(object sender, EventArgs e) { worker.RunWorkerAsync(); XmlDocument xml = new XmlDocument(); xml.Load("C:\\Users\\barab\\Desktop\\1.xml"); ReceiveMessageType Message = new ReceiveMessageType { MessageType = MessageType.UploadTest, Data = new Up_Test() { xml = xml.ToString() } }; IPHostEntry ipHost = Dns.GetHostEntry("localhost"); IPAddress ipAddr = ipHost.AddressList[1]; IPEndPoint ipEndPoint = new IPEndPoint(ipAddr, 20000); srSocket.Connect(ipEndPoint); byte[] data = Serialization.ToByteArray(Message); srSocket.Send(data); data = new byte[2048]; do { srSocket.Receive(data, data.Length, 0); }while (srSocket.Available > 0); srSocket.Shutdown(SocketShutdown.Both); srSocket.Close(); ReceiveMessageType receiveMessageType = Serialization.FromByteArray <ReceiveMessageType>(data); if (receiveMessageType.MessageType == MessageType.Error) { MessageBox.Show($"ok"); } }
private void button1_Click(object sender, EventArgs e) { XmlReader reader = null; ReceiveMessageType Message = new ReceiveMessageType { MessageType = MessageType.GetTest, Data = new Get_Test { Id = 1, xml = reader } }; IPHostEntry ipHost = Dns.GetHostEntry("localhost"); IPAddress ipAddr = ipHost.AddressList[1]; IPEndPoint ipEndPoint = new IPEndPoint(ipAddr, 20000); srSocket.Connect(ipEndPoint); byte[] data = Serialization.ToByteArray(Message); srSocket.Send(data); data = new byte[2048]; do { srSocket.Receive(data, data.Length, 0); }while (srSocket.Available > 0); srSocket.Shutdown(SocketShutdown.Both); srSocket.Close(); ReceiveMessageType receiveMessageType = Serialization.FromByteArray <ReceiveMessageType>(data); if (receiveMessageType.MessageType == MessageType.GetTest) { MessageBox.Show("ok"); } }
public ChunkRequestedMessage(ReceiveMessageType messageType, int messageSize, byte[] messageData) : base(messageType, messageSize, messageData) { }
public ReceiveMessage(ReceiveMessageType messageType, int messageSize, byte[] messageData) { MessageType = messageType; MessageSize = messageSize; MessageData = messageData; }
private void button1_Click(object sender, EventArgs e) { string loginUser = loginField.Text.ToString(); string passUser = passField.Text.ToString(); ReceiveMessageType Message = new ReceiveMessageType { MessageType = MessageType.Login, Data = new Logins() { Login = loginUser, Password = passUser } }; IPHostEntry ipHost = Dns.GetHostEntry("localhost"); IPAddress ipAddr = ipHost.AddressList[1]; IPEndPoint ipEndPoint = new IPEndPoint(ipAddr, 20000); srSocket.Connect(ipEndPoint); byte[] data = Serialization.ToByteArray(Message); srSocket.Send(data); data = new byte[2048]; do { srSocket.Receive(data, data.Length, 0); }while (srSocket.Available > 0); srSocket.Shutdown(SocketShutdown.Both); srSocket.Close(); ReceiveMessageType receiveMessageType = Serialization.FromByteArray <ReceiveMessageType>(data); if (receiveMessageType.MessageType == MessageType.GetTeacher || receiveMessageType.MessageType == MessageType.GetStudent) { Student student = (Student)receiveMessageType.Data; MessageBox.Show("ok"); MessageBox.Show($"'{student.Second_Name}'"); } //DB db = new DB(); //DataTable table = new DataTable(); //table.Locale = System.Globalization.CultureInfo.InvariantCulture; //SqlDataAdapter adapter = new SqlDataAdapter(); //SqlCommand command = new SqlCommand("SELECT * FROM UserInfoTable WHERE login = @uL AND pass = @uP", db.getConnection()); //command.Parameters.Add("@uL", SqlDbType.VarChar).Value = loginUser; //command.Parameters.Add("@uP", SqlDbType.VarChar).Value = passUser; //adapter.SelectCommand = command; //adapter.Fill(table); //if (table.Rows.Count > 0) //{ // this.Hide(); // questionForm qf = new questionForm(); // qf.Show(); //} else { MessageBox.Show("No"); } }