Stránka 1 z 1
C# tcp client, listener mimo VS
Napsal: 28 bře 2015 10:50
od Rutherther
Ahoj, mám takový problém, když si udělám program, který využívá tcp client a listener, tak ve VS je vše v pořádku, ale mimo (když spustím samotný exe soubor) to začne blbnout, nejspíše na straně serveru, nevíte, co s tím?
Jestli potřebujete ještě nějaké další info, tak napište, dodám ho
Díky za odpovědi
--- Doplnění předchozího příspěvku (28 Bře 2015 11:25) ---
Vše jsem předělal na Socket, místo tcplistener a client, ale pořád ten samý problém
Re: C# tcp client, listener mimo VS
Napsal: 30 bře 2015 23:31
od CZechBoY
Co znamená "blbnout"?
Re: C# tcp client, listener mimo VS Vyřešeno
Napsal: 31 bře 2015 07:14
od Rutherther
Připojím se na server, někdy se pokusím poslat jen něco jednou, ale server to ani nepřijme, jindy pošlu třeba 5x, ale po šesté už to server nepřijme, okno clienta přestane odpovídat a jsem nucen vypnout program přes správce úloh.
Ve VS tp funguje ůplně normálně, proto si myslím, že to půjde něčím vyřešit..
Re: C# tcp client, listener mimo VS
Napsal: 31 bře 2015 21:45
od Rutherther
Opravdu nikdo nevíte co s tím?
Client - C#,
Server - Java, funguje dobře, ale
Client - C#,
Server - C#, dělá již zmíněnou chybu, zamozřejmě mohu použít kombinaci c#, java, ale přece jenom, pokud byste někdo věděl, co s tím, tam děkuji za rady
Re: C# tcp client, listener mimo VS
Napsal: 01 dub 2015 11:40
od CZechBoY
Pošli zdroják, takhle se nic nevyřeší...
Re: C# tcp client, listener mimo VS
Napsal: 01 dub 2015 15:20
od Rutherther
Ok, pošlu zdroják, myslel jsem, že se to obejde i bez toho..
► Zobrazit spoiler
Client:
Kód: Vybrat vše
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Net;
using System.Net.Sockets;
using System.Runtime.InteropServices;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Client
{
public partial class Client : Form
{
public Client()
{
InitializeComponent();
}
Socket client = null;
Timer t = new Timer();
private void button1_Click(object sender, EventArgs e)
{
client = new Socket(IPAddress.Any.AddressFamily,SocketType.Stream, ProtocolType.Tcp);
Stav.Text = "Connecting..";
if (IP.Text == null)
{
Stav.Text = "IP je prazdna";
return;
}
int port = 12345;
try
{
client.Connect(new IPEndPoint(IPAddress.Parse(IP.Text), port));
Stav.Text = "Connected!";
}
catch
{
Stav.Text = "Error";
return;
}
if (!client.Connected) {
Stav.Text = "Error (nejspise je pripojen nekdo jiny)";
return;
}
MoveMouse.Enabled = LeftClick.Enabled = MessageBox.Enabled = true;
button1.Enabled = false;
t.Enabled = false;
t = new Timer();
t.Interval = 1;
t.Tick += new EventHandler(t_Tick);
t.Start();
}
private void t_Tick(object sender, EventArgs e)
{
if (Freeze.Checked) {
if (!client.Connected) { Stav.Text = "Disconnected!"; return; }
if (X.Text == null || Y.Text == null)
{
Zprava.Text = "X, nebo Y není vyplněné";
return;
}
try
{
int.Parse(X.Text);
int.Parse(Y.Text);
}
catch
{
Zprava.Text = "X a Y musí být int";
return;
}
try
{
byte[] message = Encoding.UTF8.GetBytes("Mouse:"+X.Text+","+Y.Text);
client.Send(message);
}
catch
{
MoveMouse.Enabled = LeftClick.Enabled = MessageBox.Enabled = false;
Stav.Text = "Disconnected!"; button1.Enabled = true;
}
}
}
private void Client_FormClosing(object sender, FormClosingEventArgs e)
{
try {
if (!client.Connected) { Stav.Text = "Disconnected!"; return; }
if (client != null && client.Connected) { byte[] message = Encoding.UTF8.GetBytes("exit:exit");
client.Send(message);
}
}
catch {
Stav.Text = "Disconnected!"; button1.Enabled = true;
}
}
private void MoveMouse_Click(object sender, EventArgs e)
{
if (!client.Connected) { Stav.Text = "Disconnected!"; return; }
if (X.Text == null || Y.Text == null)
{
Zprava.Text = "X, nebo Y není vyplněné";
return;
}
try
{
int.Parse(X.Text);
int.Parse(Y.Text);
}
catch
{
Zprava.Text = "X a Y musí být int";
return;
}
try
{
byte[] message = Encoding.UTF8.GetBytes("Mouse:" + X.Text + "," + Y.Text + "\r\n");
client.Send(message);
byte[] bytes = new byte[1024];
client.Receive(bytes);
Zprava.Text = Encoding.UTF8.GetString(bytes);
}
catch {
MoveMouse.Enabled = LeftClick.Enabled = MessageBox.Enabled = false;
Stav.Text = "Disconnected!"; button1.Enabled = true;
}
}
private void LeftClick_Click(object sender, EventArgs e)
{
if (!client.Connected) { Stav.Text = "Disconnected!"; return; }
try {
byte[] message = Encoding.UTF8.GetBytes("Click:LeftClick\r\n");
client.Send(message);
byte[] bytes = new byte[1024];
client.Receive(bytes);
Zprava.Text = Encoding.UTF8.GetString(bytes);
}
catch {
Stav.Text = "Disconnected!";
MoveMouse.Enabled = LeftClick.Enabled = MessageBox.Enabled = false;
}
}
private void MessageBox_Click(object sender, EventArgs e)
{
if (!client.Connected) { Stav.Text = "Disconnected!"; return; }
if (Message.Text == null)
{
Zprava.Text = "Message musí být vyplněná";
return;
}
if (Message.Text.Contains(":"))
{
Zprava.Text = "Message nesmí obsahovat :";
return;
}
try {
byte[] message = Encoding.UTF8.GetBytes("MessageBox:"+Message.Text+"\r\n");
client.Send(message);
byte[] bytes = new byte[1024];
client.Receive(bytes);
Zprava.Text = Encoding.UTF8.GetString(bytes);
}
catch {
Stav.Text = "Disconnected!";
MoveMouse.Enabled = LeftClick.Enabled = MessageBox.Enabled = false;
}
}
}
}
Server:
Kód: Vybrat vše
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
using System.Linq;
using System.Net;
using System.Net.Sockets;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Server
{
public partial class Server : Form
{
[DllImport("user32.dll")]
public static extern int SetCursorPos(int x, int y);
[DllImport("user32.dll")]
public static extern void mouse_event(int dwFlags, int dx, int dy, int cButtons, int dwExtraInfo);
private const int MOUSEEVENTF_LEFTDOWN = 0x02;
private const int MOUSEEVENTF_LEFTUP = 0x04;
Socket listener;
Socket client;
public Server()
{
InitializeComponent();
}
private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
}
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
}
private void Server_Load(object sender, EventArgs e)
{
listener = new Socket(IPAddress.Any.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
listener.Bind(new IPEndPoint(IPAddress.Any, 12345));
listener.Listen(10);
client = listener.Accept();
while (true)
{
try
{
byte[] ReceivedData = new byte[1024];
client.Receive(ReceivedData);
String str = Encoding.UTF8.GetString(ReceivedData);
str += ":";
String[] s = str.Split(new string[] { ":" }, StringSplitOptions.None);
String key = s[0];
String value = s[1];
if (key == "Mouse")
{
Point p = new Point(int.Parse(value.Split(',')[0]), int.Parse(value.Split(',')[1]));
Cursor.Position = p;
SetCursorPos(int.Parse(value.Split(',')[0]), int.Parse(value.Split(',')[1]));
byte[] message = Encoding.UTF8.GetBytes("Kurzor byl posunut na " + value);
client.Send(message);
}
else if (key == "Click")
{
mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, Cursor.Position.X, Cursor.Position.Y, 0, 0);
byte[] message = Encoding.UTF8.GetBytes("Bylo kliknuto levým tlačítkem");
client.Send(message);
}
else if (key == "MessageBox")
{
MessageBox.Show(value, "Varování:");
byte[] message = Encoding.UTF8.GetBytes("Zpráva byla odeslána");
client.Send(message);
}
else if (key == "exit")
{
listener.Close();
listener = new Socket(IPAddress.Any.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
listener.Bind(new IPEndPoint(IPAddress.Any, 12345));
listener.Listen(10);
client = listener.Accept();
}
else
{
if (key != null && value != null && key != "" && value != "")
MessageBox.Show(key + " " + value);
}
}
catch {
listener.Close();
listener = null;
listener = new Socket(IPAddress.Any.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
listener.Bind(new IPEndPoint(IPAddress.Any, 12345));
listener.Listen(10);
client = listener.Accept();
}
}
}
}
}
--- Doplnění předchozího příspěvku (01 Dub 2015 20:55) ---
Už jsem to vyřešil, antivir to blokoval, děkuji za to, že ses mi snažil pomoct.