Advertisement
Guest User

Untitled

a guest
Mar 18th, 2019
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.31 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Windows.Forms;
  10. using System.Net;
  11. using System.Net.Sockets;
  12. using System.Threading;
  13.  
  14.  
  15. namespace sockjtest
  16. {
  17. public partial class Form1 : Form
  18. {
  19.  
  20. System.Net.Sockets.TcpClient clientSocket = new System.Net.Sockets.TcpClient();
  21. NetworkStream serverStream = default(NetworkStream);
  22. string readData = null;
  23.  
  24. public Form1()
  25. {
  26. InitializeComponent();
  27. }
  28.  
  29. private void Form1_Load(object sender, EventArgs e)
  30. {
  31.  
  32. }
  33.  
  34. private void exitToolStripMenuItem_Click(object sender, EventArgs e)
  35. {
  36. this.Close();
  37. }
  38.  
  39. // send from sendbox
  40. private void button1_Click(object sender, EventArgs e)
  41. {
  42.  
  43.  
  44. byte[] outStream = System.Text.Encoding.UTF8.GetBytes(sendbox.Text);
  45. serverStream.Write(outStream, 0, outStream.Length);
  46. serverStream.Flush();
  47.  
  48. sendbox.Clear();
  49. }
  50.  
  51. private void recievebox_TextChanged(object sender, EventArgs e)
  52. {
  53.  
  54.  
  55. }
  56.  
  57. // send username to server once connected
  58. private void sendusr()
  59. {
  60.  
  61. byte[] userStream = System.Text.Encoding.UTF8.GetBytes(usernamebox.Text);
  62. serverStream.Write(userStream, 0, userStream.Length);
  63. serverStream.Flush();
  64.  
  65. }
  66.  
  67. // connect button
  68.  
  69. private void button2_Click(object sender, EventArgs e)
  70. {
  71. Thread ctThread = new Thread(recievestream);
  72.  
  73. if (conntectbutton.Text.Contains("Connect") == true)
  74. {
  75.  
  76.  
  77.  
  78. string srvip = serverip.Text;
  79. int srvport = Convert.ToInt32(serverport.Text);
  80. try
  81. {
  82. clientSocket.Connect(srvip, srvport);
  83. if (clientSocket.Connected)
  84. {
  85.  
  86. // change button state
  87. conntectbutton.Text = "Disconnect";
  88. recievebox.Clear();
  89. recievebox.AppendText("*** Connected to " + srvip + ":" + srvport + " ***rn");
  90.  
  91. // start recieve thread
  92. serverStream = clientSocket.GetStream();
  93. ctThread.Start();
  94. // call send user function
  95. sendusr();
  96.  
  97. }
  98.  
  99. }
  100.  
  101. catch (System.Net.Sockets.SocketException)
  102. {
  103. recievebox.Clear();
  104. recievebox.AppendText("*** Could not connected to " + srvip + ":" + srvport + " ***");
  105. }
  106. } else
  107. {
  108. string quitmsg = "{quit}";
  109. byte[] quitstream = System.Text.Encoding.UTF8.GetBytes(quitmsg);
  110. serverStream.Write(quitstream, 0, quitstream.Length);
  111. serverStream.Flush();
  112.  
  113. Thread.Sleep(3000);
  114. ctThread.Abort();
  115.  
  116. conntectbutton.Text ="Connect";
  117. }
  118.  
  119.  
  120. }
  121.  
  122. private void serverip_TextChanged(object sender, EventArgs e)
  123. {
  124.  
  125. }
  126.  
  127. private void serverport_TextChanged(object sender, EventArgs e)
  128. {
  129.  
  130. }
  131.  
  132. // recieve
  133. private void recievestream()
  134. {
  135. while (true)
  136. {
  137.  
  138.  
  139. NetworkStream serverStream = clientSocket.GetStream();
  140. int buffSize = 0;
  141. byte[] inStream = new byte[1024];
  142. int bytesRead = serverStream.Read(inStream, 0, inStream.Length);
  143. buffSize = clientSocket.ReceiveBufferSize;
  144. string returndata = System.Text.Encoding.UTF8.GetString(inStream, 0, bytesRead);
  145. readData = "" + returndata;
  146. msg();
  147.  
  148. }
  149. }
  150.  
  151. // print message to recievebox
  152. private void msg()
  153. {
  154. if (this.InvokeRequired)
  155. this.Invoke(new MethodInvoker(msg));
  156. else
  157. recievebox.Text = recievebox.Text + Environment.NewLine + readData;
  158. }
  159.  
  160. private void usernamebox_TextChanged(object sender, EventArgs e)
  161. {
  162.  
  163. }
  164.  
  165. }
  166. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement