|
You last visited: Today at 02:47
Advertisement
c# --> Linux
Discussion on c# --> Linux within the .NET Languages forum part of the Coders Den category.
09/15/2011, 17:34
|
#1
|
elite*gold: 30
Join Date: Aug 2006
Posts: 110
Received Thanks: 28
|
c# --> Linux
Hi leute, ich hab ein kleines serverprogramm in c#, welches ich auf linux laufen lassen muss.
da ich allerdings absolut keinen plan habe wie ich für linux ein programm schreibe, wollte ich hier fragen ob mir jemand das programm umschreibt oder mir wenigstens ein paar tipps geben kann.
achja, mit wine und so braucht ihr nicht antworten  is direkt v-server, also nix mit X-Server
danke schonmal  Aileen
|
|
|
09/15/2011, 18:11
|
#2
|
elite*gold: 0
Join Date: Jan 2011
Posts: 144
Received Thanks: 73
|
Hi, schonmal Mono ausprobiert?
und warum sollte wine nicht auch ohne x-server eine applikation starten können?
|
|
|
09/15/2011, 18:11
|
#3
|
elite*gold: 59
Join Date: Jun 2007
Posts: 374
Received Thanks: 86
|
Nutz doch anstatt .Net das Mono Framework.
Dies läuft auf unter Linux.
Sprich Mono ist das Plattformunabhängige .Net.
EDIT: Ronox, nett, zur gleichen Zeit, das gleiche gepostet. :P
See Ya!
|
|
|
09/15/2011, 18:58
|
#4
|
elite*gold: 30
Join Date: Aug 2006
Posts: 110
Received Thanks: 28
|
von diesem monoframework hab ich 0 ahnung, ich arbeite jetz gerademal paar wochen mit c# ._.
und wegen wine, ich bekomm immer einen fehler von wegen x-server evtl nicht gestartet oder $display nicht gesetzt. kein plan wie ich das umgehen kann
wäre super wenn mir jemand erklären könnte wie das mit dem mono funktioniert oder wie ich meinen c# code in ne linuxanwendung umschreiben kann
ich häng den code mal an
Code:
using System;
using System.Collections.Generic;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.Net.Sockets;
namespace Server
{
enum Command
{
Login,
Logout,
Message,
List,
Null
}
public partial class serverForm : Form
{
struct ClientInfo
{
public Socket socket;
public string strName;
}
ArrayList clientList;
Socket serverSocket;
byte[] byteData = new byte[1024];
public serverForm()
{
clientList = new ArrayList();
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
try
{
serverSocket = new Socket(AddressFamily.InterNetwork,
SocketType.Stream,
ProtocolType.Tcp);
IPEndPoint ipEndPoint = new IPEndPoint(IPAddress.Any, 5555);
serverSocket.Bind(ipEndPoint);
serverSocket.Listen(4);
serverSocket.BeginAccept(new AsyncCallback(OnAccept), null);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Server",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void OnAccept(IAsyncResult ar)
{
try
{
Socket clientSocket = serverSocket.EndAccept(ar);
serverSocket.BeginAccept(new AsyncCallback(OnAccept), null);
clientSocket.BeginReceive(byteData, 0, byteData.Length, SocketFlags.None,
new AsyncCallback(OnReceive), clientSocket);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Server",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void OnReceive(IAsyncResult ar)
{
try
{
Socket clientSocket = (Socket)ar.AsyncState;
clientSocket.EndReceive(ar);
Data msgReceived = new Data(byteData);
Data msgToSend = new Data();
byte [] message;
msgToSend.cmdCommand = msgReceived.cmdCommand;
msgToSend.strName = msgReceived.strName;
switch (msgReceived.cmdCommand)
{
case Command.Login:
ClientInfo clientInfo = new ClientInfo();
clientInfo.socket = clientSocket;
clientInfo.strName = msgReceived.strName;
clientList.Add(clientInfo);
msgToSend.strMessage = "<<<" + msgReceived.strName + " hat den Raum betreten>>>";
break;
case Command.Logout:
int nIndex = 0;
foreach (ClientInfo client in clientList)
{
if (client.socket == clientSocket)
{
clientList.RemoveAt(nIndex);
break;
}
++nIndex;
}
clientSocket.Close();
msgToSend.strMessage = "<<<" + msgReceived.strName + " hat den Raum verlassen>>>";
break;
case Command.Message:
msgToSend.strMessage = msgReceived.strName + ": " + msgReceived.strMessage;
break;
case Command.List:
msgToSend.cmdCommand = Command.List;
msgToSend.strName = null;
msgToSend.strMessage = null;
foreach (ClientInfo client in clientList)
{
msgToSend.strMessage += client.strName + "*";
}
message = msgToSend.ToByte();
clientSocket.BeginSend(message, 0, message.Length, SocketFlags.None,
new AsyncCallback(OnSend), clientSocket);
break;
}
if (msgToSend.cmdCommand != Command.List)
{
message = msgToSend.ToByte();
foreach (ClientInfo clientInfo in clientList)
{
if (clientInfo.socket != clientSocket ||
msgToSend.cmdCommand != Command.Login)
{
clientInfo.socket.BeginSend(message, 0, message.Length, SocketFlags.None,
new AsyncCallback(OnSend), clientInfo.socket);
}
}
txtLog.Text += msgToSend.strMessage + "\r\n";
}
if (msgReceived.cmdCommand != Command.Logout)
{
clientSocket.BeginReceive(byteData, 0, byteData.Length, SocketFlags.None, new AsyncCallback(OnReceive), clientSocket);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Server", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
public void OnSend(IAsyncResult ar)
{
try
{
Socket client = (Socket)ar.AsyncState;
client.EndSend(ar);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Server", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
class Data
{
public Data()
{
this.cmdCommand = Command.Null;
this.strMessage = null;
this.strName = null;
}
public Data(byte[] data)
{
this.cmdCommand = (Command)BitConverter.ToInt32(data, 0);
int nameLen = BitConverter.ToInt32(data, 4);
int msgLen = BitConverter.ToInt32(data, 8);
if (nameLen > 0)
this.strName = Encoding.UTF8.GetString(data, 12, nameLen);
else
this.strName = null;
if (msgLen > 0)
this.strMessage = Encoding.UTF8.GetString(data, 12 + nameLen, msgLen);
else
this.strMessage = null;
}
public byte[] ToByte()
{
List<byte> result = new List<byte>();
result.AddRange(BitConverter.GetBytes((int)cmdCommand));
if (strName != null)
result.AddRange(BitConverter.GetBytes(strName.Length));
else
result.AddRange(BitConverter.GetBytes(0));
if (strMessage != null)
result.AddRange(BitConverter.GetBytes(strMessage.Length));
else
result.AddRange(BitConverter.GetBytes(0));
if (strName != null)
result.AddRange(Encoding.UTF8.GetBytes(strName));
if (strMessage != null)
result.AddRange(Encoding.UTF8.GetBytes(strMessage));
return result.ToArray();
}
public string strName;
public string strMessage;
public Command cmdCommand;
}
}
|
|
|
09/15/2011, 19:09
|
#5
|
elite*gold: 20
Join Date: Sep 2006
Posts: 1,100
Received Thanks: 184
|
Wenn es sich um eine Grafische Anwendung handelt dann wirst du sie auf einem Server ohne X auch nicht ausführen können.
Mono versucht mit .NET so kompatibel wie möglich zu sein, dass heißt du kannst einfach mal versuchen deine .NET assembly mit mono auszuführen.
Edit:
Hatte den Spoiler übersehen...
Dein Windows-Forms Programm wird mit Sicherheit nicht auf einem Linux-Server ohne X laufen.
|
|
|
09/16/2011, 12:26
|
#6
|
elite*gold: 30
Join Date: Aug 2006
Posts: 110
Received Thanks: 28
|
najut, das heißt ich muss in einer linux sprache mein programm schreiben.
kann mir jemand nen stichwort geben in welcher sprache (kenn mich wie gesagt nicht mit dem linuxmist aus)?
|
|
|
09/18/2011, 12:07
|
#7
|
elite*gold: 0
Join Date: Jan 2009
Posts: 355
Received Thanks: 106
|
C/C++, Java, usw.
|
|
|
09/19/2011, 07:15
|
#8
|
elite*gold: 0
Join Date: Oct 2008
Posts: 1,637
Received Thanks: 1,119
|
Quote:
Originally Posted by Secredo
C/C++, Java, usw. 
|
java kann man auf nem vserver vergessen!
|
|
|
09/19/2011, 12:39
|
#9
|
elite*gold: 30
Join Date: Aug 2006
Posts: 110
Received Thanks: 28
|
also c++
ich dachte das gehört ebenfalls zu .net oO
|
|
|
09/19/2011, 16:51
|
#10
|
elite*gold: 0
Join Date: Oct 2008
Posts: 1,637
Received Thanks: 1,119
|
Quote:
Originally Posted by Snake124
also c++
ich dachte das gehört ebenfalls zu .net oO
|
nur cli
|
|
|
09/19/2011, 18:42
|
#11
|
elite*gold: 0
Join Date: Jan 2009
Posts: 355
Received Thanks: 106
|
Quote:
Originally Posted by HeavyHacker
java kann man auf nem vserver vergessen! 
|
Warum denn? <.<
So extrem langsam ist Java nun auch wieder nicht.
|
|
|
 |
Similar Threads
|
Warrock auf Linux ? (Kennt ihr auch andere Games für Linux)
09/11/2011 - WarRock - 7 Replies
Hallo,
kann man Warrock auf Linux spielen ?
Wenn nein kennt ihr Spiele genau wie Warrock die auch auf Linux gehen?
|
Linux (Debian) als Linux-Server?
05/13/2011 - Unix/Linux - 2 Replies
Hi!
Bevor ihr fragt: Ich habe in Google gesucht...
So ok, jetzt aber zu meiner Frage:
Ich weis das man den Apache auf Debian(Linux) per Kommandozentrale installieren kann. So da dacht ich mir: Warum mach ich nicht einen Computer der IMMER läuft und mach den zusätzlich als Server.
Naja, lange Rede kurzer Sinn: Ich will fragen ob man mit dem Apachen eine Website laufen lassen kann, wie das ist mit Php und mysql (also ob und wie man das installieren kann), und welches dann der...
|
Metin2 auf Linux wer sich gut mit Linux auskennt sollte draufklicken^^
03/19/2011 - Metin2 - 1 Replies
Hallo
Ich benützte zur zeit Linux da ich gehört habe dass Mann mit paar Programme zb. wine Windows spiele auf Linux spielen kann.
Aber bei metin2 wenn ich das mit Wine starte tritt ein fehler auf weil Linux nicht unbekanntes downloadet.
Habs mit Bypass versucht auf mein Windows7 ging es super mit bypass aber auf linux tritt Hackschield auf und lässt es nicht durch.
so nun hab ich sehr lange gesucht und wollte wissen wie das gehen soll
ich habe bei Metin2wiki die erklärung gefunden da ich...
|
Wie WINE auf Linux installieren ? & Wie .zip auf Linux entpacken?
02/02/2011 - Unix/Linux - 2 Replies
Hallo erstmal
habe mir vor 2 Tagen einen vserver angelegt worauf Linux installiert ist.
Meine Sachlage ist jetzt,dass ich gerne speile drauf starten will,doch dann habe ich vom support erfahren,dass das nicht so leicht auf Linux geht,ich müsste erstmal WINE drauf installieren.So habe ich mich in google auf die Suche gemacht und erstemale die neueste version von WINE heruntergeladen und auf den linux vserver hochgeladen.Dann habe ich noch durch den support erfahren,dass ich durch die...
|
ICQ IM für Linux?
01/03/2007 - Off Topic - 8 Replies
Habe mir vor paar Minuten mal Ubuntu draufgeschmissen und wollte nun fragen, welcher der wohl beste Ersatz für ICQ ist? ICQ ist nämlich unter Linux nicht kompatibel.
Hab zwar schon gegooglt, aber es gibt etliche Ersätze, dementsprechend danke schonmal für Antworten. ;o
|
All times are GMT +2. The time now is 02:47.
|
|