|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
22.02.2019, 20:07 | #1 |
Новичок
Джуниор
Регистрация: 22.02.2019
Сообщений: 1
|
c# и работа с сетью
Имеется код,что необходимо исправить чтобы при нажатии 1 из 3 кнопок клиент отправлял строку или число на сервер для дальнейшей его обработки? заранее благодарен
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace KNB { public partial class Client : Form { public Client() { InitializeComponent(); } Network myServer = new Network(); private void button1_Click(object sender, EventArgs e) { myServer.sendMessage = new StringBuilder(1); } private void button2_Click(object sender, EventArgs e) { myServer.sendMessage = new StringBuilder(2); } private void button3_Click(object sender, EventArgs e) { myServer.sendMessage = new StringBuilder(3); } private void Client_Load(object sender, EventArgs e) { } private void button4_Click(object sender, EventArgs e) { int port = int.Parse(textBox2.Text); string IP = textBox1.Text; bool ConnecttoServer = myServer.ConnectToServer(port, IP); checkBox1.Checked = ConnecttoServer; if (ConnecttoServer == true) { myServer.ClientServerTalk(); } } private void checkBox1_CheckedChanged(object sender, EventArgs e) { } private void timer1_Tick(object sender, EventArgs e) { } } } using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Net; using System.Net.Sockets; using System.Windows.Forms; namespace KNB { class Network { public int Player_1=0; public int Player_2=0; public bool serverState = false; TcpClient client; public StringBuilder sendMessage = new StringBuilder(); public StringBuilder reciveMessage = new StringBuilder(); void ResiveTalk() { StringBuilder str = new StringBuilder(); while (client.Connected) { str = new StringBuilder(SendRecive("", false)); if (client.Connected) { str = new StringBuilder(SendRecive("",false)) ; if (str.Length > 0) { reciveMessage = str; MessageBox.Show("123"); str.Clear(); } else { } } } } void SendTask() { while (client.Connected) { if (sendMessage.Length > 0) { SendRecive(sendMessage.ToString(), true); MessageBox.Show(sendMessage.ToStrin g()); sendMessage.Clear(); } } } public void ClientServerTalk() { Task TalkSendTask = new Task(SendTask); Task TalkReciveTask = new Task(ResiveTalk); TalkReciveTask.Start(); TalkSendTask.Start(); } public string Byte_convert(byte[] Resive) { int buf = Resive.Length; String R = ""; int F = 0; for (int i = 1; i < buf; i++) if (Resive[i] != 0) F++; R = System.Text.Encoding.ASCII.GetStrin g(Resive); R = R.Substring(0, F); return R; } public string SendRecive(string text, bool send) { string otvet = ""; byte[] o = new byte[text.Length]; try { switch (send) { case true: o = System.Text.Encoding.ASCII.GetBytes (text); client.Client.Send(o); break; case false: o = new byte[256]; client.Client.Receive(o); otvet = Byte_convert(o); break; } } catch { } return otvet; } void Lisen() { serverState = true; IPAddress localAdress = IPAddress.Parse("0.0.0.0"); int Port = 911; TcpListener liss = new TcpListener(localAdress, Port); liss.Start(); while (serverState) { client = liss.AcceptTcpClient(); ClientServerTalk(); } } public void RunServer() { serverState = true; Task S = new Task(Lisen); S.Start(); } public bool ConnectToServer(int ServerPort,string ServerIPAdress) { try { client = new TcpClient(); client.Connect(IPAddress.Parse(Serv erIPAdress), ServerPort); return client.Connected; } catch(Exception ex) { reciveMessage = new StringBuilder(ex.Message); } return false; } } } |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Работа с сетью | Алиби | Помощь студентам | 3 | 02.12.2016 10:10 |
Работа с сетью | Arsenx777 | Visual C++ | 5 | 16.07.2011 11:17 |
Работа с сетью на C# | Jonaitis | Общие вопросы .NET | 8 | 13.12.2010 18:37 |
Работа с сетью | Silentdi | Работа с сетью в Delphi | 0 | 24.09.2010 15:01 |
C++ работа с сетью. | n4ela | Общие вопросы C/C++ | 3 | 27.01.2010 15:31 |