PDA

View Full Version : برنامه نویسی سوکت (اشکال این قطعه کد چیه؟)



kh1387
چهارشنبه 01 شهریور 1391, 13:07 عصر
سلام
من این برنامه رو نوشتم ولی در محل کد زیر خطا داره.
serverSock.Accept();

اصلا برنامه وقتی روی این خط میاد دیگه هیچکار نمی کنه!




if (rbtServer.Checked)
{
IPEndPoint ipepServer = newIPEndPoint(IPAddress.Parse("172.16.10.104"), 80);
Socket serverSock = newSocket(AddressFamily.InterNetwork,
SocketType.Stream, ProtocolType.Tcp);
serverSock.Bind(ipepServer);
serverSock.Listen(25);
Console.WriteLine("Waiting for a client...");
serverSock.Accept();
string welcome = string.Empty;
while (welcome != "$")
{
Console.Write("Enter a text: ");
welcome = Console.ReadLine();
byte[] data = newbyte[50];
data = System.Text.Encoding.ASCII.GetBytes(welcome);
serverSock.Send(data);
}
}

saman_h
چهارشنبه 01 شهریور 1391, 13:31 عصر
سلام
من این برنامه رو نوشتم ولی در محل کد زیر خطا داره.
serverSock.Accept();

اصلا برنامه وقتی روی این خط میاد دیگه هیچکار نمی کنه!





if (rbtServer.Checked)
{
IPEndPoint ipepServer = newIPEndPoint(IPAddress.Parse("172.16.10.104"), 80);
Socket serverSock = newSocket(AddressFamily.InterNetwork,
SocketType.Stream, ProtocolType.Tcp);
serverSock.Bind(ipepServer);
serverSock.Listen(25);
Console.WriteLine("Waiting for a client...");
serverSock.Accept();
string welcome = string.Empty;
while (welcome != "$")
{
Console.Write("Enter a text: ");
welcome = Console.ReadLine();
byte[] data = newbyte[50];
data = System.Text.Encoding.ASCII.GetBytes(welcome);
serverSock.Send(data);
}
}




سلام دوست عزیز شما به این صورت بنویس ببین درست میشه :
ServerSock = ServerSock.accept();
درضمن من احساس میکنم جالب نباشه اینکاری که کردید !! ( البته نظر شخصیمه ها !! ممکنه اشتباه بکنم ):
اینجوری سوکت تعریف کن :
Socket sock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
اینجوری هم یه گوش دهنده به پورت ایجاد کن واسه تایید اتصال :
TcpListener server = new TcpListener(ipAddress, port);
حالا اینجوری از طرف سرور منتظر باش که یکی درخواست اتصال بده :
server.Start();
sock = server.AcceptSocket();
از طرف کلاینت هم اینجوری درخواست اتصال بده :
sock.Connect("شماره پورت", "شماره پورت");

kh1387
پنج شنبه 02 شهریور 1391, 07:27 صبح
خیلی ممنونم
میشه یه مثلا بزنید.
چون من هرکاری کردم نشد
اگه در قالب یه برنامه باشه واقعا ممنون می شم

saman_h
پنج شنبه 02 شهریور 1391, 11:51 صبح
خیلی ممنونم
میشه یه مثلا بزنید.
چون من هرکاری کردم نشد
اگه در قالب یه برنامه باشه واقعا ممنون می شم

اینم نمونه کد با توضیحات :
http://up.toca.ir/images/jxy487ndj4eugln1bg.rar

kh1387
شنبه 04 شهریور 1391, 07:47 صبح
آقا دستت درد نکنه
خیلی وقت گذاشتی
واقعا ازتون ممنونم
ایشالا جبران کنیم:لبخندساده:

یه سوال هم دارم
چطوری می تونم این رابطه رو بصورت Full Duplex ایجاد کنم؟
بازم ازتون ممنونم

saman_h
شنبه 04 شهریور 1391, 12:46 عصر
آقا دستت درد نکنه
خیلی وقت گذاشتی
واقعا ازتون ممنونم
ایشالا جبران کنیم:لبخندساده:

یه سوال هم دارم
چطوری می تونم این رابطه رو بصورت Full Duplex ایجاد کنم؟
بازم ازتون ممنونم

خواهش عزیزم این چه حرفیه ... زکات علم ، آموزشه ، از طرف دیگه ماکه هیچی بلد نیسیم ایناییم که بلدیم از دوستان یاد گرفتیم :چشمک:
کاری نداره دقیقا همون کاری که توی سرور انجام شده رو توی کلاینت انجام بده . اون تابعی رو که نوشتم ( اصلا کل کدهارو ) کپی کن داخل اون کلاینتی که گذاشته بودم . و کد دکمه ی Send داخل کلاینت روهم بذار داخل اون سرور و ...
یکم کوچولو اذیت میشی اما از قدیم گفتن : هرکه طاووس خواهد جور هندوستان کشد
اگه نتونستی بگو کمکت کنم اما برو دورش که یکم راه بیفتی