Witam, otóż potrzebuję pomocy, mam napisać prosty chat w C# z użyciem gniazd, a w zagadnieniach sieciowych jak i C# nie jestem zbyt dobry
Mam takie kody, które należy zmienić tak aby klienci mogli się podłączać po server i wymieniać się wiadomościami (tak jak chat) a także prowadzić możliwość prowadzenia prywatnych rozmów.
using System;
using System.Text;
using System.IO;
using System.Net;
using System.Net.Sockets;
public class MySocket
{
static void Main ()
{
byte[] buffer = new byte[100];
int count;
IPEndPoint myEP = new IPEndPoint(IPAddress.Any, 2000);
Socket sock = new Socket(
AddressFamily.InterNetwork,
SocketType.Stream,
ProtocolType.Tcp);
sock.Bind(myEP);
sock.Listen(5);
Socket new_sock = sock.Accept();
count = new_sock.Receive(buffer);
string upperString = Encoding.UTF8.GetString(buffer).ToUpper();
new_sock.Send(Encoding.UTF8.GetBytes(upperString));
Console.WriteLine(upperString);
new_sock.Close();
sock.Close();
}
}
Strona klienta, nie wiem czy wymaga zmian
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Net;
using System.Net.Sockets;
namespace client
{
public partial class Form1 : Form
{
byte[] buffer;
Socket s;
public Form1()
{
while (true)
{
InitializeComponent();
buffer = Encoding.UTF8.GetBytes(textBox1.Text);
IPEndPoint servEP = new
IPEndPoint(IPAddress.Parse(textBox2.Text), 2000);
s = new Socket(AddressFamily.InterNetwork,
SocketType.Stream, ProtocolType.Tcp);
backgroundWorker1.RunWorkerAsync();
s.Connect(servEP);
}
}
private void button1_Click(object sender, EventArgs e)
{
s.Send(buffer);
}
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
s.Receive(buffer);
}
private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
string buffer1 = Encoding.UTF8.GetString(buffer);
textBox1.Text = buffer1;
s.Close();
}
}
}