سلام
کد زیر رو دقیقا" از روی کتاب نوشتم
public partial class frmServer : Form
{
public frmServer()
{
InitializeComponent();
readThread = new Thread(new ThreadStart(RunServer));
readThread.Start();
}
private Socket connection;
private Thread readThread;
private NetworkStream socketStream;
private BinaryWriter writer;
private BinaryReader reader;
public void RunServer()
{
TcpListener listener;
int counter = 1;
try
{
listener = new TcpListener(5000);
listener.Start();
while (true)
{
displayTextBox.Text = "waiting for connection\r\n";
connection = listener.AcceptSocket();
socketStream = new NetworkStream(connection);
writer = new BinaryWriter(socketStream);
reader = new BinaryReader(socketStream);
displayTextBox.Text += "Connection " + counter + " received.\r\n";
writer.Write("SERVER>>> Connection Succeful");
inputTextBox.ReadOnly = false;
string theReply = "";
do
{
try
{
theReply = reader.ReadString();
displayTextBox.Text += "\r\n" + theReply;
}
catch (Exception)
{
break;
}
} while (theReply.ToLower() != "client>>> terminate" &&
connection.Connected);
displayTextBox.Text += "\r\nUser Terminated Connection";
inputTextBox.ReadOnly = true;
writer.Close();
reader.Close();
socketStream.Close();
connection.Close();
++counter;
}
}
catch (Exception error)
{
MessageBox.Show(error.ToString());
}
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
Environment.Exit(Environment.ExitCode);
}
private void inputTextBox_KeyDown(object sender, KeyEventArgs e)
{
try
{
if (e.KeyCode == Keys.Enter && connection != null)
{
writer.Write("SERVER>>> " + inputTextBox.Text);
displayTextBox.Text += "\r\nSERVER>>> " + inputTextBox.Text;
if (inputTextBox.Text.ToLower() == "terminate")
connection.Close();
inputTextBox.Clear();
}
}
catch (SocketException)
{
displayTextBox.Text += "\nError Writing Object";
}
}
}
ولی موقع اجرا خطای فایل پیوست شده رو میده
نکته جالب اینجاست که موقعی که برنامه را با F11 اجرا میکنم مشکلی نداره ولی اجرا در حالت عادی خطا میده