private void CloseButton_Click(object sender, RoutedEventArgs e) { lock (locker) { if (client != null) { if (client.Connected) { client?.GetStream()?.Close(); } client?.Close(); client = null; } connectToMainServerThread?.Abort(); connectToMainServerThread = null; ListHolder.DownloadableFiles.Clear(); ListHolder.UpdateList(); MessageBox.Show("Client close", "Close"); } }
private void btnConnect_Click(object sender, EventArgs e) { string rawData = "Hola mundo"; String data = stringToHexa(rawData); Console.WriteLine(data); try { client = new TcpClient(txtConnect.Text, 2000); ns = client.GetStream(); sr = new StreamReader(ns); sw = new StreamWriter(ns); // DelegadoRespuesta dr = new DelegadoRespuesta(EscribirFormulario); // Invoke(dr); } catch (Exception err) { Console.WriteLine(err.ToString()); throw; } }
private void ReceiveFile(object o) { User user = (User)o; string[] content = user.photo.Split(','); try { TcpClient fClient = new TcpClient(content[1], int.Parse(content[2])); //Format localIP,port,nickname,filename,length bool ok = false; if (MessageBox.Show(string.Format("是否接收文件{0}?", content[4]), string.Format("来自{0}的文件请求", content[3]), MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.OK) { //选择文件保存路径 string localFilePath = "D:\\"; SaveFileDialog sfd = new SaveFileDialog(); sfd.RestoreDirectory = true; sfd.InitialDirectory = localFilePath; sfd.FileName = content[4]; if (sfd.ShowDialog() == System.Windows.Forms.DialogResult.OK) { localFilePath = sfd.FileName.ToString(); //获得文件路径 SendMessage(fClient, "ok"); ok = true; //接受文件 int fileLength = int.Parse(content[5]); byte[] heByte = new byte[fileLength]; BinaryReader br = new BinaryReader(fClient.GetStream()); BinaryWriter bw = new BinaryWriter(fClient.GetStream()); br.Read(heByte, 0, fileLength); //传输完成 bw.Write("success"); bw.Flush(); //写文件 using (FileStream fs = new FileStream(localFilePath, FileMode.Create)) { fs.Write(heByte, 0, fileLength); } user.form.AddItemToListBox1("接受文件成功"); } else { } } else { } if (ok == false) { //拒绝传文件请求 SendMessage(fClient, "cancle"); user.form.AddItemToListBox1("已取消文件传输"); } } catch { user.form.AddItemToListBox1("传输文件发送未知错误"); } }
static void Main(string[] args) { List <string> localCerts = Directory.GetFiles(Directory.GetCurrentDirectory(), "*.pfx").ToList(); if (localCerts.Count > 0) { Console.WriteLine("Which certificate to use?"); foreach (string localCert in localCerts) { Console.WriteLine("{0}.{1}", localCerts.IndexOf(localCert), localCert.Remove(0, localCert.LastIndexOf(@"\") + 1).Replace(".pfx", String.Empty)); } int index = Convert.ToInt32(Console.ReadLine()); cert = new X509Certificate2(localCerts[index]); subject = cert.Subject.Replace("CN=", String.Empty); } else { Console.WriteLine("No certificates found"); Console.ReadKey(); return; } while (true) { Console.Write("IP: "); host = Console.ReadLine(); Console.Write("PORT: "); port = Convert.ToInt32(Console.ReadLine()); client = new TcpClient(); try { client.Connect(host, port); //подключение клиента stream = client.GetStream(); // получаем поток BinaryFormatter formatter = new BinaryFormatter(); Task task = Task.Run(() => ReceiveMessage()); Dictionary <string, object> data = new Dictionary <string, object>(); data.Add("command", "authReq"); data.Add("subject", subject); formatter.Serialize(stream, data); while (true) { string command = Console.ReadLine(); data.Clear(); switch (command) { default: { Console.WriteLine("Unknown command"); break; } } } } catch (Exception ex) { Console.WriteLine(ex.Message); } finally { Disconnect(); } } }
private void getMessage() { try { while (true) { serverStream = clientSocket.GetStream(); byte[] inStream = new byte[10025]; serverStream.Read(inStream, 0, inStream.Length); List <string> parts = null; if (!SocketConnected(clientSocket)) { MessageBox.Show("You've been Disconnected"); ctThread.Abort(); clientSocket.Close(); btnConnect.Enabled = true; } parts = (List <string>)ByteArrayToObject(inStream); switch (parts[0]) { case "userList": getUsers(parts); break; case "gChat": readData = "" + parts[1]; msg(); break; case "pChat": managePrivateChat(parts); break; } if (readData[0].Equals('\0')) { readData = "Reconnect Again"; msg(); this.Invoke((MethodInvoker) delegate // To Write the Received data { btnConnect.Enabled = true; }); ctThread.Abort(); clientSocket.Close(); break; } chat.Clear(); } } catch (Exception e) { ctThread.Abort(); clientSocket.Close(); btnConnect.Enabled = true; Console.WriteLine(e); } }
public Client(string IP, int port) { clientSocket = new TcpClient(); clientSocket.Connect(IPAddress.Parse(IP), port); stream = clientSocket.GetStream(); }
/// <summary> /// opens a new multiplayer connection to the client /// </summary> public void Open() { // sets bools to true and message to null isMultiActive = true; isOpen = true; // create a client and Open the streams client = new TcpClient(); client.Connect(ep); stream = client.GetStream(); reader = new BinaryReader(stream); writer = new BinaryWriter(stream); // task to listen for the receiving stream. ready for messages from the server receiver = new Task(() => { // do as long as the isOpen bool is true while (isOpen) { // read only if the last message received was already taken if (statues == null) { string result; Status status; try { // get a message from the server and parse it to Statues result = reader.ReadString(); statues = Statues.FromJson(result); status = statues.Stat; NotifyAboutMessage?.Invoke(this, new StatuesEventArgs(statues)); } catch (Exception) { MessageBox.Show("Connect to the server have been closed"); // an error in the connection statues = new Statues(); statues.SetStatues(Status.Close, "Error receiveing message from the server"); status = Status.Disconnect; } // switch through the different options received from the server switch (status) { case Status.Disconnect: { Close(); break; } case Status.Close: { Close(); break; } case Status.Play: { statues = null; continue; } case Status.CloseGame: { // close the connection writer.Write("exit"); Close(); break; } case Status.Finish: { // close the connection writer.Write("exit"); Close(); break; } default: { break; } } } // wait for some one to receive the message else { Thread.Sleep(1); } } }); // start the thread receiver.Start(); }
private void Button1_Click(object sender, EventArgs e) { TcpClient client = new TcpClient(); try { //client.Connect("127.0.0.1", 49677); client.Connect("172.16.3.199", 40000); nStream = client.GetStream(); //send data sendData = new BinaryWriter(nStream); readData = new BinaryReader(nStream); if (!String.IsNullOrEmpty(textBox1.Text)) { PlayerName = textBox1.Text; if (radioButton2.Checked) { flag = true; } try { sendData.Write(PlayerName + " " + flag.ToString().ToLower()); panel1.Visible = true; panel1.Paint += new PaintEventHandler(Panel1_Paint); panel1.Refresh(); PName.Text = PlayerName; if (flag) { DisabledMood(); //read playing character str = readData.ReadString(); PlayingChar = str; // MessageBox.Show("Play char "+PlayingChar); if (str == "X") { OtherPlayingChar = "O"; } else { OtherPlayingChar = "X"; } //MessageBox.Show("other char " + OtherPlayingChar); ChangeTurn(); } else { RecieveResponse(); } } catch { LostConnection(); } } } catch { MessageBox.Show("No Connection! Please, Try Again Later"); } }
private void OnAccepted(object sender) { TcpClient result = sender as TcpClient; while (true) { try { NetworkStream ns = tc.GetStream(); BinaryFormatter bf = new BinaryFormatter(); object test_obj = bf.Deserialize(ns) as object; Data dataFromServer = (Data)test_obj; if (dataFromServer.keyword == "jr") { if (dataFromServer.room_number != "000") { winformThreadDisplay.DisplayClear(textBoxCurRoom); winformThreadDisplay.DisplayText(dataFromServer.room_number, textBoxCurRoom); } winformThreadDisplay.DisplayClear(richTextBoxCurUser); List <string> user_list_string = dataFromServer.user_list; foreach (var u in user_list_string) { winformThreadDisplay.DisplayText(u, richTextBoxCurUser); } winformThreadDisplay.DisplayText(dataFromServer.msg, richTextBoxMain); user.room_number = dataFromServer.room_number; } else if (dataFromServer.keyword == "rc") { List <string> room_list = dataFromServer.room_list; winformThreadDisplay.DisplayClear(textBoxAllRoom); foreach (var r in room_list) { winformThreadDisplay.DisplayText(r + " ", textBoxAllRoom); } } else if (dataFromServer.keyword == "ms") { winformThreadDisplay.DisplayText(dataFromServer.msg, richTextBoxMain); } else if (dataFromServer.keyword == "nr") { winformThreadDisplay.DisplayClear(textBoxCurRoom); winformThreadDisplay.DisplayText(dataFromServer.room_number, textBoxCurRoom); winformThreadDisplay.DisplayText(dataFromServer.msg, richTextBoxMain); List <string> user_list_string = dataFromServer.user_list; winformThreadDisplay.DisplayClear(richTextBoxCurUser); foreach (var u in user_list_string) { winformThreadDisplay.DisplayText(u, richTextBoxCurUser); } user.room_number = dataFromServer.room_number; } else if (dataFromServer.keyword == "ro") { if (dataFromServer.room_number != "000") { List <string> user_list_string = dataFromServer.user_list; winformThreadDisplay.DisplayClear(richTextBoxCurUser); foreach (var u in user_list_string) { winformThreadDisplay.DisplayText(u, richTextBoxCurUser); } } else { winformThreadDisplay.DisplayClear(richTextBoxMain); winformThreadDisplay.DisplayClear(richTextBoxCurUser); } user.room_number = dataFromServer.room_number; } else if (dataFromServer.keyword == "nc") { winformThreadDisplay.DisplayClear(textBox_name); winformThreadDisplay.DisplayText(dataFromServer.user_name, textBox_name); winformThreadDisplay.DisplayClear(richTextBoxCurUser); if (dataFromServer.user_list != null) { foreach (var u in dataFromServer.user_list) { winformThreadDisplay.DisplayText(u, richTextBoxCurUser); } } user.user_name = dataFromServer.user_name; } else if (dataFromServer.keyword == "ul") { winformThreadDisplay.DisplayClear(richTextBoxCurUser); if (dataFromServer.user_list != null) { foreach (var u in dataFromServer.user_list) { winformThreadDisplay.DisplayText(u, richTextBoxCurUser); } } } } catch (SocketException se) { Console.WriteLine(se); break; } catch (Exception e) { Console.WriteLine(e); break; } } }