میخوام اطلاعات رو بین دو تا کامپیوتر انتقال بدم
اطلاعات مورد نظر از اولین کامپیوتر از طریق شبکه بودن به دیتابیس همون برنامه تو کامپیوتر دوم بره و ذخیره بشه (با سی شارپ)
برای اینکار باید چیکار کنم؟
ممنون میشم راهنمایی کنین
با سپاس Spaceman
Printable View
میخوام اطلاعات رو بین دو تا کامپیوتر انتقال بدم
اطلاعات مورد نظر از اولین کامپیوتر از طریق شبکه بودن به دیتابیس همون برنامه تو کامپیوتر دوم بره و ذخیره بشه (با سی شارپ)
برای اینکار باید چیکار کنم؟
ممنون میشم راهنمایی کنین
با سپاس Spaceman
میتونی از Socket Programming استفاده کنی.
چجوری با سوکت پروگرمینگ باید وصل شد؟
با سپاس Spaceman
خیلی ممنون دوست عزیز
فقط یه سوال اون برنامه که دو تا برنامه WindowsFormApplication3,4 میشه یه توضیح بدی که چجوری کار میکنه؟ (کد ها رو بعدا تست میکنم فقط میخوام منطقش رو الان بدونم)
با سپاس Spaceman
اگه میخوای دیتابیس شبکه داشته باشی باید یه Sql server نصب کنی رو سیستم دوم یه مقدار تنظیمات انجام بدی(تنظیمات شبکه) بعد دیتابیستون رو بسازید.نقل قول:
اطلاعات مورد نظر از اولین کامپیوتر از طریق شبکه بودن به دیتابیس همون برنامه تو کامپیوتر دوم بره و ذخیره بشه
با یه رشته اتصال مناسب بهش متصل بشین و با دستور insert اطلاعاتو ذخیره کنین
نه همون برنامه شبکه باشه خیلی بهتر هست
با سپاس Spaceman
لطفا یکی بگه این مشکل رو باید چیکارش کنم؟
و اینم ارور
ضمیمه 124205
با سپاس Spaceman
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();
}
اینم یک نمونه مثال دیگه بعد از ارتباط از Try و Catch استفاده کنید.