PDA

View Full Version : سوال: در مورد برنامه چت ساده در سی شارپ ، به کمک تون نیاز دارم



ali.fatemi
دوشنبه 25 اردیبهشت 1396, 23:08 عصر
سلام و درود به همه دوستان گرامی
در مورد یک برنامه سی شارپ به کمک تون نیاز دارم
از ما خواسته شده برنامه ای در ویژوال استودیو بنویسیم برای چت ساده بین دو کامپیوتر
یکی کلاینت باشه و یکی هم سرور و بتونن با هم چت کنن
یه برنامه الگو و پیش فرض هم بهمون دادن که برنامه رو از روی اون بنویسیم :

برنامه سمت سرور :



ﺳﺎﺧﺖ ﻳﻚ ﺳﻮکت
ﻣﻘﻴﺪ ﻛﺮدن ﺳﻮﻛﺖ ﺑﻪ یک IPEndPoint ﻣﺤلی
ﻗﺮار دادن ﺳﻮﻛﺖ در ﺣﺎﻟﺖ ﺷﻨود
درﻳﺎﻓﺖ ﺗﻘﺎﺿﺎ ﺑﺮاي ارﺗﺒﺎط ﺑﺎ ﺳﻮکت






using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Net.Sockets;
namespace Server
{
class Program
{
static void Main(string[] args)
{
int recv;
byte[] data = new byte[2048];
IPEndPoint ipep = new IPEndPoint(IPAddress.Any,
9050);
Socket newsock = new
Socket(AddressFamily.InterNetwork, SocketType.Stream,
ProtocolType.Tcp);
newsock.Bind(ipep);
newsock.Listen(10);
Console.WriteLine("Waiting for a client...");
Socket client = newsock.Accept();
IPEndPoint clientep = (IPEndPoint)client.RemoteEndPoint;
Console.WriteLine("Connected with {0} at port
{1}", clientep.Address, clientep.Port);
string welcome = "Welcome to my test server";
data = Encoding.ASCII.GetBytes(welcome);
client.Send(data, data.Length, SocketFlags.None);
while (true)
{
data = new byte[1024];
recv = client.Receive(data);
if (recv == 0)
break;
Console.WriteLine(Encoding.ASCII.GetString(data, 0,
recv));
client.Send(data, recv, SocketFlags.None);
}
Console.WriteLine("Disconnected from
{0}",clientep.Address);
client.Close();
newsock.Close();
}
}
}







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



using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Net.Sockets;
namespace Client
{
class Program
{
static void Main(string[] args)
{
byte[] data = new byte[2048];
string input, stringData;
IPEndPoint ipep = new IPEndPoint(
IPAddress.Parse("127.0.0.1"), 9050);
Socket server = new
Socket(AddressFamily.InterNetwork,SocketType.Strea m,
ProtocolType.Tcp);
try
{
server.Connect(ipep);
}
catch (SocketException e)
{
Console.WriteLine("Unable to connect to server.");
Console.WriteLine(e.ToString());
return;
}
int recv = server.Receive(data);
stringData = Encoding.ASCII.GetString(data, 0, recv);
Console.WriteLine(stringData);
while (true)
{
input = Console.ReadLine();
if (input == "exit")
break;
server.Send(Encoding.ASCII.GetBytes(input));
data = new byte[1024];
recv = server.Receive(data);
stringData = Encoding.ASCII.GetString(data, 0, recv);
Console.WriteLine(stringData);
}
Console.WriteLine("Disconnecting from server...");
server.Shutdown(SocketShutdown.Both);
server.Close();
}
}
}







باهاش کار کردم ،‌ اما یه کم گیج شدم . نمی دونم چه جوری باید این برنامه رو نوشت. ممنون میشم از دوستانی که بتونن راهنماییم کنن . ( اگه امکانش هست ، توضیحات تون بر اساس محیط console باشه ؛ یعنی وقتی برنامه رو کامپایل می کنم ، بتونم در همون محیط کامپایل چت کنم و نیازی به طراحی فرم نداشته باشه )
خیلی خیلی ممنونم




...