J'essaie de faire communiquer deux pc, mais la transmission de données ne se fait pas.. j'ai un socket dans le client a part le tcpclient, je pense que c'est le probleme, mais je ne suis pas sure... je crois que le problème réside dans
/*
client.Connect("192.168.1.32", 104);
tcpclnt.Connect("192.168.1.32", 104); // use the ipaddress as in the server program
*/
voici un extrait du code
Client
TcpClient tcpclnt = new TcpClient();
Stream stm;
Byte[] sbuff = new Byte[1024];
public Socket client ;
textBox3.AppendText("Connecting.....");
client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
client.Connect("192.168.1.32", 104);
tcpclnt.Connect("192.168.1.32", 104); // use the ipaddress as in the server program
textBox3.AppendText("\r\nConnected");
client.Send(sbuff, 0, sbuff.Length, SocketFlags.None);
stm = tcpclnt.GetStream();
textBox3.AppendText("\r\nTransmitting.....");
AAssociateRQ ass_rq = new AAssociateRQ();
byte[] bt = new byte[298];
bt=ass_rq.Init_PDU_RQ(); // méthode qui récupére un tableau de bytes de la classe AAssociateRQ
stm.Write(bt, 0, bt.Length);
Byte[] b = new Byte[298];
byte[] bb = new byte[298];
int k = stm.Read(bb, 0, 298);
byte[] PDUacrcv = new byte[298];
for (int i = 0; i < k; i++)
{
PDUacrcv[i] = b[i];
textBox3.AppendText(Convert.ToChar(bb[i]).ToString());
}
Serveur
IPAddress ipAd = IPAddress.Parse("192.168.1.32"); //use local m/c IP address, and use the same in the client
TcpListener myList = new TcpListener(ipAd, 104);
myList.Start();
textBox1.AppendText("The server is running at port 104...");
textBox1.AppendText("\r\nThe local End point is :" + myList.LocalEndpoint);
s = myList.AcceptSocket();
textBox1.AppendText("\r\nConnection accepted from " + s.RemoteEndPoint);
Byte[] b = new Byte[298];
int k = s.Receive(b);
byte[] b2 = new byte[2];
textBox1.AppendText("\r\nReceived...");
byte[] PDUrcv = new byte[298];
for (int i = 0; i < k; i++)
{
PDUrcv[i] = b[i];
textBox1.AppendText(Convert.ToChar(b[i]).ToString());
}
if (PDUrcv[0].Equals(0x01))
textBox1.AppendText("\r\nAAssociate RQ received");
else
textBox1.AppendText(PDUrcv[0].ToString());
Byte[] request = new Byte[4];
byte[] abs=new byte[1];
int rabs = s.Receive(abs);
ASCIIEncoding asen = new ASCIIEncoding();
//au cas au il a accépter la communication
if (PDUrcv[145].Equals(0x09))
{
s.Send(asen.GetBytes("\r\nPresentation Context accepted"));
}
Partager