C#-ban lévő ékezetes karakter problémám van. Valaki segítene?
Ennyiből nem nagyon tudunk segíteni. Hogyan valósul meg a kommunikáció? Azt gyanítom, hogy dekódolásnál lehet a hiba, talán nincs is megadva kódolás a szövegnek. Állíts be utf8-at, de mindkét oldalon ez legyen.
De ha feltöltöd a kódot többet tudunk segíteni
Most kezdtem el a programozást, ezért nem tudom, hogy mit küldjek el pontosan, szóval elküldöm az egészet.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Net;
using System.Net.Sockets;
namespace ZoCo
{
public partial class ZoCo : Form
{
Socket sck;
EndPoint epLocal, epRemote;
byte[] buffer;
public ZoCo()
{
InitializeComponent();
}
private void textBox3_TextChanged(object sender, EventArgs e)
{
}
private void Form1_Load(object sender, EventArgs e)
{
//set up socket
sck = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
sck.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);
// get user IP
textLocalIP.Text = GetLocalIP();
textRemoteIP.Text = GetLocalIP();
}
private string GetLocalIP()
{
IPHostEntry host;
host = Dns.GetHostEntry(Dns.GetHostName());
foreach (IPAddress ip in host.AddressList)
{
if (ip.AddressFamily == AddressFamily.InterNetwork)
return ip.ToString();
}
return "127.0.0.1";
}
private void Exit_Click(object sender, EventArgs e)
{
this.Close();
}
private void buttonConnect_Click(object sender, EventArgs e)
{
//binding Socket
epLocal = new IPEndPoint(IPAddress.Parse(textLocalIP.Text), Convert.ToInt32(textLocalPort.Text));
sck.Bind(epLocal);
//Connecting to remote IP
epRemote = new IPEndPoint(IPAddress.Parse(textRemoteIP.Text), Convert.ToInt32(textRemotePort.Text));
sck.Connect(epRemote);
//Listening the specific port
buffer = new byte[1500];
sck.BeginReceiveFrom(buffer, 0, buffer.Length, SocketFlags.None, ref epRemote, new AsyncCallback(MessageCallBack), buffer);
}
private void buttonSend_Click(object sender, EventArgs e)
{
//Convert string message to byte[]
ASCIIEncoding aEncoding = new ASCIIEncoding();
byte[] sendingMessage = new byte[1500];
sendingMessage = aEncoding.GetBytes(textMessage.Text);
//Sending the Encoded message
sck.Send(sendingMessage);
//adding to the listbox
listMessage.Items.Add("You: " + textMessage.Text);
textMessage.Text = "";
}
private void label5_Click(object sender, EventArgs e)
{
}
private void pictureBox1_Click(object sender, EventArgs e)
{
}
private void listMessage_SelectedIndexChanged(object sender, EventArgs e)
{
}
private void groupBox2_Enter(object sender, EventArgs e)
{
}
private void groupBox1_Enter(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
Form2 openForm = new Form2();
openForm.Show();
}
private void textMessage_TextChanged(object sender, EventArgs e)
{
}
private void MessageCallBack(IAsyncResult aResult)
{
try
{
byte[] receivedData = new byte[1500];
receivedData = (byte[])aResult.AsyncState;
//Converting byte[] to String
ASCIIEncoding aEncoding = new ASCIIEncoding();
string receivedMessage = aEncoding.GetString(receivedData);
//Adding this message into Listbox
listMessage.Items.Add("Friend: " + receivedMessage);
buffer = new byte[1500];
sck.BeginReceiveFrom(buffer, 0, buffer.Length, SocketFlags.None, ref epRemote, new AsyncCallback(MessageCallBack), buffer);
buttonConnect.Text = "Connected";
buttonConnect.Enabled = false;
buttonConnect.Enabled = true;
textMessage.Focus();
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
}
}
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!