PDA

View Full Version : سوال: سوال در مورد ارسال و دریافت در برنامه نویسی سوکت؟



parsuser
پنج شنبه 15 دی 1390, 20:43 عصر
سلام

برنامه زیر یه برنامه چت ساده در محیط cmd هستش ،فقط یه مشکلی داره که چتش دو طرفه نیست

میخوام یکاری بکنم که هر دو طرف هم ارسال داشته باشند وهم دریافت (به صورت بی نهایت )

دوستان هرکسی سوکت پروگرمینگ کار کرده راهنمایی کنه.

از نظر دادن هزینه وقتی که صرفش می کنید هم مشکلی ندارم

کلاینت (ارسال کننده ) :




using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Net.Sockets;
namespace ConsoleApplication7
{
class Program
{
static void Main(string[] args)
{
Socket server = new Socket(AddressFamily.InterNetwork,
SocketType.Stream, ProtocolType.Tcp);
server.Connect(new IPEndPoint(IPAddress.Parse("127.0.0.1"), 3902));
Console.WriteLine("connected");
while (true)
server.Send(Encoding.ASCII.GetBytes(Console.ReadLi ne()));
}
}
}





سرور (دریافت کننده ):



using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Net.Sockets;
namespace ConsoleApplication8
{
class Program
{
static void Main(string[] args)
{

Socket sock = new Socket(AddressFamily.InterNetwork,
SocketType.Stream, ProtocolType.Tcp);
sock.Bind(new IPEndPoint(IPAddress.Any, 3902));
Console.WriteLine("waiting for a connection");
sock.Listen(10);

sock = sock.Accept();
Console.WriteLine("accpeted");

byte[] buffer = new byte[50];

while (sock.Connected)
{
System.Threading.Thread.Sleep(300);
try
{
if (sock.Receive(buffer) > 0)
{
Console.WriteLine(Encoding.ASCII.GetString(buffer) );
buffer = new byte[50]; // Reset buffer.
}
}
catch { }
}
}
}
}

arefba
جمعه 16 دی 1390, 01:32 صبح
این سورس رو از اینترنت گرفتین قبلا دیدمش خیلی ساده هم عمل میکنه
پیشنهاد می کنم مسنجر سی شارپ کد باز همین فرم رو نگاهی کنید