Hejsan. Jag håller på att skriva ett litet program och jag använder serialiserade objekt för att kommunicera över nätet. ingen som vet vad detta kan bero på? Får det verkligen inte att fungera :( Har inte sett på koden men har du prövat en annan router? Lite långsökt kanske men testa. Testa att skapa en streamwriter och skicka med den istället, något i denhär stilen:C# Network stream crashar router/nätverk
Programmet fungerar via localhost, men kör jag över lanet så crashar routern och jag måste starta om både router och dator för att återfå nätverket.. Det fungerar att skicka i långsam mak men skickar jag många ggr per sekund så är det som det crashar
Nån som har en idé?
[code]
using System;
using System.Threading;
using System.Net.Sockets;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
using DataStructs;
using WarRoom.Interfaces;
namespace WarRoom.Network
{
public enum SendType {ConnectHandshake, FinalizeHandshake, NewUser, ChatMessage };
/// <summary>
/// Handles the network connections for the program
/// </summary>
public class NetworkConnection
{
private TcpClient clientConnection;
private Thread reciveThread;
private User user;
private IObserver observer;
NetworkStream stream;
/// <summary>
/// Class constructor, gets reference for the obsorver (the GUI) and
/// also connects the client to the server (hardcoded IP for testing)
/// </summary>
/// <param name="observer">GUI reference</param>
public NetworkConnection(IObserver observer)
{
this.observer = observer;
this.Connect("192.168.1.2", 16999);
}
/// <summary>
/// Connects to the server
/// </summary>
/// <param name="address">Serveradress</param>
/// <param name="port">TCP/IP port</param>
private void Connect(string address, int port)
{
try
{
//creates clients and streams
clientConnection = new TcpClient(address, port);
stream = clientConnection.GetStream();
InitializeThread();
}
catch
{
observer.ErrorMessage("Couldn´t connect to server...");
}
}
/// <summary>
/// Send data to server
/// </summary>
/// <param name="sType">What kind of data object</param>
/// <param name="obj">Data object</param>
public void Send(SendType sType, object obj)
{
try
{
stream = clientConnection.GetStream();
BinaryFormatter bF = new BinaryFormatter();
NetworkData data;
//each type of network communication is labled by a enum
stream.WriteByte((byte)sType);
switch (sType)
{
case SendType.FinalizeHandshake:
data = new NetworkData(user.UserID,DataType.Userinfo,0,0,obj.ToString());
bF.Serialize(stream, data);
break;
case SendType.ChatMessage:
data = new NetworkData(user.UserID, DataType.Text, 0, 0, obj.ToString());
bF.Serialize(stream, data);
break;
}
stream.Flush();
}
catch { }
}
/// <summary>
/// Recives data from the server
/// </summary>
private void Recive()
{
BinaryFormatter bF = new BinaryFormatter();
NetworkData data;
SendType sType;
for (; ; )
{
//each type of network communication is labled by a enum
sType = (SendType)stream.ReadByte();
switch (sType)
{
case SendType.ConnectHandshake:
data = (NetworkData)bF.Deserialize(stream);
//hardcoded username for testing
string name = "Name_" + data.UserID;
user = new User(name, data.UserID);
Send(SendType.FinalizeHandshake, name);
observer.AddUser(name, user.UserID);
break;
case SendType.NewUser:
data = (NetworkData)bF.Deserialize(stream);
observer.AddUser(data.Text, data.UserID);
break;
case SendType.ChatMessage:
data = (NetworkData)bF.Deserialize(stream);
observer.ChatMessage(data.Text, data.UserID);
break;
}
}
}
/// <summary>
/// The user of this client connection
/// </summary>
public User User
{
get { return user; }
}
/// <summary>
/// Initialize recive thread
/// </summary>
private void InitializeThread()
{
reciveThread = new Thread(new ThreadStart(this.Recive));
reciveThread.Start();
}
}
}
[/code]Sv: C# Network stream crashar router/nätverk
Sv:C# Network stream crashar router/nätverk
Sv:C# Network stream crashar router/nätverk
NetworkStream ns = dinsocket.GetStream();
StreamWriter streamwriter = new StreamWriter(ns);
streamwriter.Write([Din data]);
Kommer inte riktikt ihåg i skallen hur det ska se ut, men det är något i dendär stilen.Sv: C# Network stream crashar router/nätverk
Svara