PDA

View Full Version : سوال: سوکت نویسی در C#



_4rm4n_
چهارشنبه 08 آذر 1396, 09:37 صبح
با سلام

برای سوکت نویسی به مشکل خوردم .
وقتی سوکت سمت سرور باز میشه کلاینت وصل میشه و مثلا یک تکست رو ارسال میکنه ولی بعد بسته میشه سوکت

من میخوام به صورت پشت سرهم اطلاعات ارسال بشن و سمت سرور نمایش داده بشن و همینطوری برنامه ادامه پیدا کنه یعنی سرور هنگ هم نکنه
به صورت continuously اطلاعات ارسال و دریافت بشن بدون هنگ کردن

ممنون میشم راهنمایی کنید
با تشکر /.

mr.sirwan
چهارشنبه 08 آذر 1396, 11:46 صبح
با سلام بنده زیاد با سوکت نویسی اشنایی ندارم، اما ابتدا کداتون رو قرار بدین تا دوستان بتونن راهنمایی کنن، همچنین اطمینان حاصل کنین که بعد از ارسال بسته از متد های Dispose و close و امثال اینا استفاده نکرده باشین، همچنین از بلاک using در جای مناسب استفاده شده باشه. درهر حال بازم نمیشه نظر قطعی داد و باید کدهاتون بررسی بشه

_4rm4n_
چهارشنبه 08 آذر 1396, 16:00 عصر
با تشکر از پاسختون
سمت سرور :

TcpListener listener = new TcpListener(IPAddress.Any, 1234);


listener.Start(5);
TcpClient client = listener.AcceptTcpClient();


NetworkStream nwStream = client.GetStream();
byte[] buffer = new byte[client.ReceiveBufferSize];


int bytesRead = nwStream.Read(buffer, 0, client.ReceiveBufferSize);


string dataReceived = Encoding.ASCII.GetString(buffer, 0, bytesRead);
MessageBox.Show(dataReceived);

سمت کلاینت :

string[] Msg = new string[5] { "Hello", "How Are You", "Fine", "Thank you", "And you ?" };
TcpClient client = new TcpClient("127.0.0.1", 1234);
NetworkStream nwStream = client.GetStream();
int i = 0;
while (true)
{
if (i == 4)
{
break;
}
else
{
byte[] bytesToSend = ASCIIEncoding.ASCII.GetBytes(Msg[i]);
nwStream.Write(bytesToSend, 0, bytesToSend.Length);
i++;
}
}