private async void StartBtn_Click(object sender, EventArgs e) { var connected = connection?.Connected ?? false; if (!connected) { MessageBox.Show("서버 연결을 먼저 하세요"); return; } await connection .SendMessageAsync(new CS_Start { }); }
private async void Connect(IPAddress ip) { if (connection?.Connected ?? false) { var result = MessageBox.Show("이미 서버에 연결되어 있습니다."); return; } IPEndPoint remoteEp = new IPEndPoint(ip, 52217); try { Socket server = new Socket(ip.AddressFamily, SocketType.Stream, ProtocolType.Tcp); await server.ConnectAsync(remoteEp); connection = new SocketEx(server); await connection.SendMessageAsync(new CS_Login { UserName = "******" }); await HandleReceiveAsync(); user = new User("yhj"); } catch (Exception ex) { MessageBox.Show($"서버 연결에 실패하였습니다. {ex.Message}"); connection?.Close(); connection = null; } }
public async void sendBoard() { await connection.SendMessageAsync(new CS_Board() { Board = board }); }
private async Task Handle_CS_Login(SocketEx clientSocket, CS_Login packet) { clients.Add(new UserSocketData(packet.UserName, clientSocket)); await clientSocket.SendMessageAsync(new SC_LoginAllow { Allow = true, }); await clients.Where(x => x.Socket.Connected) .ForEachParallelAsync(async x => { await x.Socket.SendMessageAsync(new SC_System { Data = $"{packet.UserName}님이 로그인했습니다.", }); }); }
private async void MessageTextBox_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { var connected = connection?.Connected ?? false; if (!connected) { MessageBox.Show("연결 먼저 하세요"); return; } await connection .SendMessageAsync(new CS_Message { Text = MessageTextBox.Text, }); } }
private async void GameStart() { var connected = connection?.Connected ?? false; if (!connected) { MessageBox.Show("서버 연결을 먼저 하세요"); return; } await connection .SendMessageAsync(new CS_Start { }); MessageBox.Show("보드 연결"); checkPaint = true; Invalidate(); }
private async void Connect(IPAddress ip) // 이 작업 끝나기 전까지는 다른 작업 안함. { if (connection?.Connected ?? false) { var result = MessageBox.Show("Already connected. Reconnect?", "", MessageBoxButtons.YesNo);// 재 연결 하시겠습니까? if (result == DialogResult.No) { return; } connection.Disconnect(false); connection.Close(); connection = null; } //IPAddress ipAddress = IPAddress.Parse("221.143.21.37"); IPEndPoint remoteEP = new IPEndPoint(ip, 52217); // Create a TCP/IP socket. try { Socket server = new Socket(ip.AddressFamily, SocketType.Stream, ProtocolType.Tcp); await server.ConnectAsync(remoteEP); //richTextBox1.Text += $"Connected: {server.Connected} \n"; connection = new SocketEx(server); await connection.SendMessageAsync(new CS_Login { UserName = "******", }); await HandleReceiveAsync(); } catch (Exception ex) { richTextBox1.Text += "Error: " + ex.Message; connection?.Close(); connection = null; } }
private async void Connect(IPAddress ip) { if (connection?.Connected ?? false) { var result = MessageBox.Show("Already connected. Reconnect?", "", MessageBoxButtons.YesNo); if (result == DialogResult.No) { return; } connection.Disconnect(false); connection.Close(); connection = null; } IPEndPoint remoteEP = new IPEndPoint(ip, 52217); // Create a TCP/IP socket. try { Socket server = new Socket(ip.AddressFamily, SocketType.Stream, ProtocolType.Tcp); await server.ConnectAsync(remoteEP); connection = new SocketEx(server); await connection.SendMessageAsync(new CS_Login { UserName = "******", }); await HandleReceiveAsync(); } catch (Exception ex) { ChattingListTextBox.Text += "Error: " + ex.Message; connection?.Close(); connection = null; } }
private async void HandleConnection(SocketEx client) { try { while (true) { var(receiveCount, receiveText) = await client.ReceiveMessageAsync(); if (receiveCount == 0) { Console.WriteLine("receive 0."); await _chattingServer.DisconnectAsync(client); return; } var obj = JObject.Parse(receiveText); if (!obj.ContainsKey("Type")) { await client.SendMessageAsync(new SC_System { Data = "올바르지 않은 패킷입니다.", }); } await _chattingServer.HandlePacketAsync(client, obj); } } catch (SocketException ex) { Console.WriteLine(ex.Message); } catch { } }
public async Task SendMessageAsync(ServerPacketBase packet) { await _socket?.SendMessageAsync(packet); }