Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Categories

need help in multi-threaded client server socket program

bushramemonbushramemon Member Posts: 3
hello,,now i m working on multi-threaded client server socket program in
> > which there is one server and multiple clients.........> > these both are giving acknowledged to each other that server started and
> > client 1 started,client 2 started,, but these programs are not communicating with each
> > other,,means i want proper communication between both,,what should i do????
> >
> >
> > server program is
> >
> > using System;
> > using System.Threading;
> > using System.Net.Sockets;
> > using System.Text;
> >
> > namespace ConsoleApplication1
> > {
> > class Program
> > {
> > static void Main(string[] args)
> > {
> > TcpListener serverSocket = new TcpListener(8888);
> > TcpClient clientSocket = default(TcpClient);
> > int counter = 0;
> >
> > serverSocket.Start();
> > Console.WriteLine(" >> " + "Server Started");
> >
> > counter = 0;
> > while (true)
> > {
> > counter += 1;
> > clientSocket = serverSocket.AcceptTcpClient();
> > Console.WriteLine(" >> " + "Client No:" + Convert.ToString(counter) + "
> > started!");
> > handleClinet client = new handleClinet();
> > client.startClient(clientSocket, Convert.ToString(counter));
> > }
> >
> > clientSocket.Close();
> > serverSocket.Stop();
> > Console.WriteLine(" >> " + "exit");
> > Console.ReadLine();
> > }
> > }
> >
> > //Class to handle each client request separatly
> > public class handleClinet
> > {
> > TcpClient clientSocket;
> > string clNo;
> > public void startClient(TcpClient inClientSocket, string clineNo)
> > {
> > this.clientSocket = inClientSocket;
> > this.clNo = clineNo;
> > Thread ctThread = new Thread(doChat);
> > ctThread.Start();
> > }
> > private void doChat()
> > {
> > int requestCount = 0;
> > byte[] bytesFrom = new byte[10025];
> > string dataFromClient = null;
> > Byte[] sendBytes = null;
> > string serverResponse = null;
> > string rCount = null;
> > requestCount = 0;
> >
> > while ((true))
> > {
> > try
> > {
> > requestCount = requestCount + 1;
> > NetworkStream networkStream = clientSocket.GetStream();
> > networkStream.Read(bytesFrom, 0, (int)clientSocket.ReceiveBufferSize);
> > dataFromClient = System.Text.Encoding.ASCII.GetString(bytesFrom);
> > dataFromClient = dataFromClient.Substring(0, dataFromClient.IndexOf("$"));
> > Console.WriteLine(" >> " + "From client-" + clNo + dataFromClient);
> >
> > rCount = Convert.ToString(requestCount);
> > serverResponse = "Server to clinet(" + clNo + ") " + rCount;
> > sendBytes = Encoding.ASCII.GetBytes(serverResponse);
> > networkStream.Write(sendBytes, 0, sendBytes.Length);
> > networkStream.Flush();
> > Console.WriteLine(" >> " + serverResponse);
> > }
> > catch (Exception ex)
> > {
> > Console.WriteLine(" >> " + ex.ToString());
> > }
> > }
> > }
> > }
> > }
> >
> >
> >
> >
> >
> > and client program is,
> >
> > using System;
> > using System.Windows.Forms;
> > using System.Net.Sockets;
> > using System.Text;
> >
> > namespace WindowsApplication1
> > {
> > public partial class Form1 : Form
> > {
> > System.Net.Sockets.TcpClient clientSocket = new
> > System.Net.Sockets.TcpClient();
> > NetworkStream serverStream;
> >
> > public Form1()
> > {
> > InitializeComponent();
> > }
> >
> > private void Form1_Load(object sender, EventArgs e)
> > {
> > msg("Client Started");
> > clientSocket.Connect("127.0.0.1", 8888);
> > label1.Text = "Client Socket Program - Server Connected ...";
> > }
> >
> > private void button1_Click(object sender, EventArgs e)
> > {
> > NetworkStream serverStream = clientSocket.GetStream();
> > byte[] outStream = System.Text.Encoding.ASCII.GetBytes("Message from
> > Client$");
> > serverStream.Write(outStream, 0, outStream.Length);
> > serverStream.Flush();
> >
> > byte[] inStream = new byte[10025];
> > serverStream.Read(inStream, 0, (int)clientSocket.ReceiveBufferSize);
> > string returndata = System.Text.Encoding.ASCII.GetString(inStream);
> > msg("Data from Server : " + returndata);
> > }
> >
> > public void msg(string mesg)
> > {
> > textBox1.Text = textBox1.Text + Environment.NewLine + " >> " + mesg;
> > }
> > }
> > }


> >
Sign In or Register to comment.