PDA

View Full Version : سوال: SocketPrograming - اشکال این فایل کجاست؟



Atiyeh1370
سه شنبه 03 اسفند 1389, 19:48 عصر
سلام
این فایلی که اینجا گذاشتم جواب نمیده
میخوام تو این فایل فرم سرور به فرم کلاینت وصل بشه و عبارت Message را به کلاینت بفرسته و این عبارت تو label فرم کلاینت نمایش داده بشه
کسی میدونه مشکلش چیه؟
ممنون میشم فوری فوری جواب بدید

66704

Alexia Himmer
سه شنبه 03 اسفند 1389, 21:19 عصر
عرض سلام

سرور روی پورت مورد نظر شما listening میشه اما chain Reflex داره . از کد زیر برای Server Side استفاده کن .طرف Client Side هم که فکر کنم بتونید بنویسید .




namespace Listening
{
class Program
{
const int portno = 102;

static void Main(string[] args)
{

System.Net.IPAddress localadd = System.Net.IPAddress.Parse("127.0.0.1");

TcpListener lis = new TcpListener(localadd, portno);
lis.Start();

TcpClient tcpc = lis.AcceptTcpClient();

NetworkStream ns = tcpc.GetStream();
byte[] data = new byte[tcpc.ReceiveBufferSize];
int nbr = ns.Read(data, 0, System.Convert.ToInt32(tcpc.ReceiveBufferSize));

Console.WriteLine("Received: " + Encoding.ASCII.GetString(data, 0, nbr));

Console .ReadLine ();


}
}
}

Atiyeh1370
چهارشنبه 04 اسفند 1389, 14:45 عصر
ممنون از توجهت
ولی من چیزی از این کد نفهمیدم
من مبتدی هستم و برنامه ای را هم که گذاشتم به زور نوشتم
لطفا برنامه خودم را اصلاح کن یا حداقل برنامت را تو WindowsApplication با یه مثال توضیح بده
خیلی خیلی شرمندم
من اولین برنامه Server-Client به صورتMultiThreading هست که مینویسم
لطفا کمکم کم:خجالت:

Alexia Himmer
چهارشنبه 04 اسفند 1389, 22:29 عصر
توضیحاتی در مورد مشابهی در آدرس زیر دادم که می تونید بررسیش کنید . اگر بعد از بررسی لازم دیدید که کد رو کامل داشته باشید بگید تا براتون بنویسم و قرار بدم .

سئوالی بود در خدمت هستم .

http://barnamenevis.org/showthread.php?274281-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D8%B3%D9%88%DA%A9%D8%AA

Atiyeh1370
پنج شنبه 05 اسفند 1389, 16:17 عصر
سلام
من قبلا اون صفحه را خونده بودم
واقعا از وقتي که گذاشتید ممنون
ببینید من يه برنامه خيلي ساده با AxWinsock نوشتم که کدش را گذاشتم
فقط میخواستم این برنامه را به صورت MultiThreading بنویسم
به طوری که ip همه کلاینت ها تو یه آرایه قرار بگیره
اگه یه کم توضیح بدید یا خیلی شرمندم با کد واسم بگید کمک بزرگی بهم کردید
بازم به خاطر وقتی که میذارید ممنون

برنامه سرور


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace WindowsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
axWinsock1.Close();
axWinsock1.LocalPort = 1000;
axWinsock1.Listen();
}
private void button2_Click(object sender, EventArgs e)
{
string s;
s = textBox1.Text;
axWinsock1.SendData (s);
textBox1.Text ="";
}
private void axWinsock1_ConnectionRequest(object sender, AxMSWinsockLib.DMSWinsockControlEvents_ConnectionR equestEvent e)
{
axWinsock1.Close();
axWinsock1.Accept(e.requestID );
button1.Enabled = false;
}
private void axWinsock1_DataArrival(object sender, AxMSWinsockLib.DMSWinsockControlEvents_DataArrival Event e)
{
String data = "";
Object dat = (object)data;
axWinsock1.GetData(ref dat);
data = (String)dat;
textBox2.Text += "\\Client- " + axWinsock1.RemoteHostIP + " : " + data;
}
}
}



برنامه کلاینت


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace WindowsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
axWinsock1.Close();
axWinsock1.Connect ("127.0.0.1",1000);
}
private void button2_Click(object sender, EventArgs e)
{
string s;
s = textBox1.Text;
axWinsock1.SendData (s);
textBox1.Text ="";
}
private void axWinsock1_ConnectEvent(object sender, EventArgs e)
{
button1.Enabled = false;
}
private void axWinsock1_DataArrival(object sender, AxMSWinsockLib.DMSWinsockControlEvents_DataArrival Event e)
{
object c=new object() ;
axWinsock1.GetData (ref c);
label2.Text = c.ToString();
textBox2.Text = textBox2.Text + c.ToString();
}


}
}