PDA

View Full Version : سوال: انتقال از طریق شبکه



NASA's Spaceman
پنج شنبه 10 مهر 1393, 10:49 صبح
میخوام اطلاعات رو بین دو تا کامپیوتر انتقال بدم
اطلاعات مورد نظر از اولین کامپیوتر از طریق شبکه بودن به دیتابیس همون برنامه تو کامپیوتر دوم بره و ذخیره بشه (با سی شارپ)
برای اینکار باید چیکار کنم؟
ممنون میشم راهنمایی کنین
با سپاس Spaceman

elec60
پنج شنبه 10 مهر 1393, 11:05 صبح
میتونی از Socket Programming استفاده کنی.

NASA's Spaceman
پنج شنبه 10 مهر 1393, 13:13 عصر
چجوری با سوکت پروگرمینگ باید وصل شد؟
با سپاس Spaceman

CsharpNevisi
پنج شنبه 10 مهر 1393, 14:53 عصر
چجوری با سوکت پروگرمینگ باید وصل شد؟
با سپاس Spaceman

این شکلی ... !!!

NASA's Spaceman
پنج شنبه 10 مهر 1393, 18:17 عصر
خیلی ممنون دوست عزیز
فقط یه سوال اون برنامه که دو تا برنامه WindowsFormApplication3,4 میشه یه توضیح بدی که چجوری کار میکنه؟ (کد ها رو بعدا تست میکنم فقط میخوام منطقش رو الان بدونم)
با سپاس Spaceman

hamid_hr
پنج شنبه 10 مهر 1393, 18:26 عصر
اطلاعات مورد نظر از اولین کامپیوتر از طریق شبکه بودن به دیتابیس همون برنامه تو کامپیوتر دوم بره و ذخیره بشه
اگه میخوای دیتابیس شبکه داشته باشی باید یه Sql server نصب کنی رو سیستم دوم یه مقدار تنظیمات انجام بدی(تنظیمات شبکه) بعد دیتابیستون رو بسازید.
با یه رشته اتصال مناسب بهش متصل بشین و با دستور insert اطلاعاتو ذخیره کنین

NASA's Spaceman
پنج شنبه 10 مهر 1393, 18:32 عصر
نه همون برنامه شبکه باشه خیلی بهتر هست
با سپاس Spaceman

NASA's Spaceman
شنبه 12 مهر 1393, 21:58 عصر
لطفا یکی بگه این مشکل رو باید چیکارش کنم؟
و اینم ارور
124205
با سپاس Spaceman

pouria_bayat
یک شنبه 13 مهر 1393, 10:03 صبح
timeout مربوط به Send اطلاعات هستش. هیچی ارتباط احتمال زیاد قطع شده باید برنامه رو طوری مدیریت کنی که در صورت بروز ارورهای این شکلی قابلیت اتصال مجدد رو داشته باشه.
مثلا این برای سرور هستش:

public void StartClient(string serverip, int serverport, StartScreen frm)
{
GStartScreen = frm;
var Sert = new CancellationTokenSource();
CancellationToken ct = Sert.Token;
new Task(() =>
{
while (true)
{
while (HandConnect)
{
Thread.Sleep(4000);
}
if (!Connect)
{
Action act = new Action(() =>
{
dlg.BtnExit.Enabled = false;
dlgGame.BtnExit.Enabled = false;
});
if (dlg.BtnExit.InvokeRequired)
dlg.BtnExit.BeginInvoke(act);
else
if (dlgGame.BtnExit.InvokeRequired)
dlgGame.BeginInvoke(act);
else
act();

server = serverip;
port = serverport;
// تلاش برای اتصال با سرور
try
{
clientSocket = new System.Net.Sockets.TcpClient();
clientSocket.Connect(serverip, serverport);

}
catch (Exception e)
{
if (e.ToString().Contains("No connection could be made because the target machine actively refused it"))
{
continue;
}
else
Console.WriteLine("<< :" + e.ToString());
}
if (clientSocket.Connected)
{
Action Newact = new Action(() =>
{
dlg.BtnExit.Enabled = true;
dlgGame.BtnExit.Enabled = true;
});
if (dlg.BtnExit.InvokeRequired)
dlg.BtnExit.BeginInvoke(Newact);
else
if (dlgGame.BtnExit.InvokeRequired)
dlgGame.BeginInvoke(Newact);
else
Newact();
// اتصال با سرور برقرار است
Connect = true;
networkStream = clientSocket.GetStream();
Thread Cthread = new Thread(() => DataSendAndReCive());
Cthread.Start();
SendData("Connect");
CheckConnection();

}
}
Thread.Sleep(4000);
}
}, ct).Start();
}

pouria_bayat
یک شنبه 13 مهر 1393, 17:32 عصر
اینم یک نمونه مثال دیگه بعد از ارتباط از Try و Catch استفاده کنید.