//SEND PIC private void action_send_pic() { string[] s = readdata.Split(':'); string name = ""; //format is //:send pic:<target> if (s.Length == 3) { name = s[2]; } //Locate the target TcpClient t = null; if (chatserver.FindUserRoom(name) != 0) { t = (TcpClient)chatserver.ClientConnections[name.ToUpper()]; } //If target is found if ((t != null)) { //Inform the sender(client) to send the picture chatserver.Write(client.GetStream(), ChatProtocolValues.SEND_PIC_MSG); //Find out the number of byte to read from sender string snumbytes = chatserver.Read(client.GetStream()); int numbytes = int.Parse(snumbytes); //read the bytes byte[] b = chatserver.ReadBinary(client.GetStream(), numbytes); if (b == null) { chatserver.Write(client.GetStream(), "server> Transmission Error"); return; } //To store the data in a jpg file //name convention is <sender>_<target>.jpg FileStream f = new FileStream(nickname + "_" + name + ".jpg", FileMode.Create); f.Write(b, 0, b.Length); f.Close(); //Inform the target that there is a picture from sender chatserver.Write(t.GetStream(), ChatProtocolValues.PIC_FROM_MSG(nickname, name)); //Inform the sender that server had received the picture chatserver.Write(client.GetStream(), ChatProtocolValues.PIC_SEND_MSG(nickname)); } else { //If target is not found inform sender chatserver.Write(client.GetStream(), ChatProtocolValues.USER_NOT_FOUND_MSG(name)); } }
private void action_send_pic() { var s = _readdata.Split(':'); var name = ""; if (s.Length == 3) { name = s[2]; } TcpClient t = null; if (_chatserver.FindUserRoom(name) != 0) { t = (TcpClient)_chatserver.ClientConnections[name.ToUpper()]; } if (t != null) { _chatserver.Write(_client.GetStream(), ChatProtocolValues.SendPicMsg); var snumbytes = _chatserver.Read(_client.GetStream()); var numbytes = int.Parse(snumbytes); var b = _chatserver.ReadBinary(_client.GetStream(), numbytes); if (b == null) { _chatserver.Write(_client.GetStream(), "server> Transmission Error"); return; } var f = new FileStream(Nickname + "_" + name + ".jpg", FileMode.Create); f.Write(b, 0, b.Length); f.Close(); _chatserver.Write(t.GetStream(), ChatProtocolValues.PIC_FROM_MSG(Nickname, name)); _chatserver.Write(_client.GetStream(), ChatProtocolValues.PIC_SEND_MSG(Nickname)); } else { _chatserver.Write(_client.GetStream(), ChatProtocolValues.USER_NOT_FOUND_MSG(name)); } }