|
Hi for all
I created an application to connect to my client to play NavyBattle.
When the application run, it's locked when the Socket is receiving the socket sended by method AcceptSocket of TcpListener. The application' s form doesn't show. I saw the taskmanager processes, and it's there.
Can someone aswer my question?
The code are below:
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Net;
using System.Net.Sockets;
using System.IO;
namespace TcpNavyBattle
{
/// <summary>
/// Summary description for Form1.
/// </summary>
public class Form1 : System.Windows.Forms.Form
{
private System.Windows.Forms.Label ConnexionLabel;
private System.Windows.Forms.TextBox TxtLocation;
private bool bConnected;
private Server m_Player1;
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.Container components = null;
public Form1()
{
//
// Required for Windows Form Designer support
//
InitializeComponent();
Server Player1 = new Server();
m_Player1 = Player1;
//Player1.Running();
//bConnected = Player1.IsConnected();
//
// TODO: Add any constructor code after InitializeComponent call
//
}
/// <summary>
/// Clean up any resources being used.
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
#Code generated by Visual Sutdio
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.Run(new Form1());
}
protected void TxtLocation_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{
if(bConnected)
{
if(e.KeyCode == Keys.Enter && TxtLocation.Text != null)
{
ConnexionLabel.Text = "Value inserted";
m_Player1.Write(TxtLocation.Text);
}
else
{
ConnexionLabel.Text = "Connection closed or textbox is null";
}
}
else
{
MessageBox.Show("nada");
}
}
}
public class Server
{
TcpListener ServerListener;
Socket Connexion;
NetworkStream DataStream;
StreamReader Reader;
StreamWriter Writer;
string sData;
public Server()
{
IPAddress IPLocalhost = IPAddress.Parse("127.0.0.1");
//first commandment: create the listener
ServerListener = new TcpListener(IPLocalhost, 65000);
//second commandment: start it!
ServerListener.Start();
}
public void Running()
{
try
{
//third commandment: associate the Listener with the socket to receive data
while(true)
{
Connexion = ServerListener.AcceptSocket();
if(Connexion.Connected)
{
//Put 1252 in (static)GetEncoding method for windows operating system encoding
//System.Text.Encoding FormattedEncoding = System.Text.Encoding.GetEncoding(0);
DataStream = new NetworkStream(Connexion);
Reader = new StreamReader(DataStream);
Writer = new StreamWriter(DataStream);
while(DataStream != null && sData != "Close connection")
{
sData = Reader.ReadLine();
}
}
}
Reader.Close();
Writer.Close();
DataStream.Close();
Connexion.Close();
Application.Exit();
}
catch(SocketException SocketEx)
{
MessageBox.Show(SocketEx.Message);
}
}
public bool IsConnected()
{
return Connexion.Connected;
}
public void Write(string sData)
{
Writer.WriteLine(DataStream);
}
}
}
|
|
|
|
|
You need to create a seperate thread for your listening socket, otherwise your user interface is blocked due to the infinite while-loop.
regards
modified 12-Sep-18 21:01pm.
|
|
|
|
|
Hi,
I am using C# to insert a date value from the DatePicker into a DateTime filed in mySQL database.. I am using the following syntax:
'" + datePicker.Value + "'
I also triend it withour the ' and with #
in the best scenario I will not get any error but the value will not be saved in the database, so if I have 10 different values of string, numeric & date then everything will be inserted successfully except the date value which will not be inserted and will not return any error message..
can anyone help please.....
Jassim Rahma
|
|
|
|
|
|
hi.
i had some problems with insertion & update of date in sql, and i solved it by using parameters to a command, but u have to be carefull because the character that shows the command that there is a parameter differs from server to server.
for example: (C#)
- to a sql server u would have something like this:
SqlCommand command = new SqlCommand("insert into mytable values (...,@date,...)");
SqlParameter parameter = new SqlParameter("@date", DateTime.Now);
command.Parameters.Add(parameter);
command.ExecuteNonQuery();
the parameter here is: "@date"
- to an oracle server the parameter characther is ":" and u would have something like this: ":date".
and if this doesn't help, u could try to use a stored procedure
best regards.
MetalSandman.
|
|
|
|
|
|
|
|
Bye!
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
Hello
I'm creating a new file in my application, but how do I make it hidden?
thanks!
|
|
|
|
|
<code>File.SetAttributes(filepath, File.GetAttributes(filepath) | FileAttributes.Hidden);</code>
|
|
|
|
|
that simple huh?
thanks!
|
|
|
|
|
Dear Friend,
I am doing a research porject about Images. Therefore
I would like to know from you, how to generate an
Image using a ByteCode of an origional image or from a
HexaView of an origional Image. What I need is, a
Java or C# function or DLL to regenarate a copy of an
Image. I can convert a given Image(any format) to the
HexView or to the ByteCode. Hence I need to regenarate
a copy of that Image using the extracted ByteCode or
HexView.
I am waiting for an imediate reply from YOu.
Pls Help me out.
mdkrishan@yahoo.com
md_kpnp@mail.com
mdkrishan@gmail.com
|
|
|
|
|
Dear Friend,
I am doing a research porject about Images. Therefore
I would like to know from you, how to generate an
Image using a ByteCode of an origional image or from a
HexaView of an origional Image. What I need is, a
Java or C# function or DLL to regenarate a copy of an
Image. I can convert a given Image(any format) to the
HexView or to the ByteCode. Hence I need to regenarate
a copy of that Image using the extracted ByteCode or
HexView.
I am waiting for an imediate reply from YOu.
Pls Help me out.
mdkrishan@yahoo.com
md_kpnp@mail.com
mdkrishan@gmail.com
|
|
|
|
|
Hello.
I have an application that uses dataadapters to fill some datasets, and it works just fine, but sometimes it crashes and i get to following error: "System.NullReferenceException: Object not set to an instance of an object".
The whole error is:
Severity=5,OccurenceTime=10.06.2005 16:23:02,Class=Data.DbManager,Method=FillTable,Message=System.NullReferenceException: Object reference not set to an instance of an object.
at System.Data.DataTable.LoadDataRow(Object[] values, Boolean fAcceptChanges)
at System.Data.Common.SchemaMapping.LoadDataRow(Boolean clearDataValues, Boolean acceptChanges)
at System.Data.Common.DbDataAdapter.FillLoadDataRow(SchemaMapping mapping)
at System.Data.Common.DbDataAdapter.FillFromReader(Object data, String srcTable, IDataReader dataReader, Int32 startRecord, Int32 maxRecords, DataColumn parentChapterColumn, Object parentChapterValue)
at System.Data.Common.DbDataAdapter.Fill(DataTable dataTable, IDataReader dataReader)
at System.Data.Common.DbDataAdapter.FillFromCommand(Object data, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
at System.Data.Common.DbDataAdapter.Fill(DataTable dataTable, IDbCommand command, CommandBehavior behavior)
at System.Data.Common.DbDataAdapter.Fill(DataTable dataTable)
at Data.DbManager.FillTable(DataTable table, String commandText),Stack= at System.Data.DataTable.LoadDataRow(Object[] values, Boolean fAcceptChanges)
at System.Data.Common.SchemaMapping.LoadDataRow(Boolean clearDataValues, Boolean acceptChanges)
at System.Data.Common.DbDataAdapter.FillLoadDataRow(SchemaMapping mapping)
at System.Data.Common.DbDataAdapter.FillFromReader(Object data, String srcTable, IDataReader dataReader, Int32 startRecord, Int32 maxRecords, DataColumn parentChapterColumn, Object parentChapterValue)
at System.Data.Common.DbDataAdapter.Fill(DataTable dataTable, IDataReader dataReader)
at System.Data.Common.DbDataAdapter.FillFromCommand(Object data, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
at System.Data.Common.DbDataAdapter.Fill(DataTable dataTable, IDbCommand command, CommandBehavior behavior)
at System.Data.Common.DbDataAdapter.Fill(DataTable dataTable)
at Data.DbManager.FillTable(DataTable table, String commandText)
Can u please help me? It's very unpseting that the application works and then suddenly crashes
Thanks.
MetalSandman.
|
|
|
|
|
can you post the specific code section where the exception is thrown plz ?
|
|
|
|
|
i get the error with this fill:
"IDbCommand command = DbManager.GetCommandWithDefaultOpenConnection(commandText);
((SqlDataAdapter)GetDataAdapter(command)).Fill(table);
command.Connection.Close();"
the GetDataAdapter function:
"IDbDataAdapter dataAdapter = null;
dataAdapter = new SqlDataAdapter((SqlCommand)command);"
the getCommandWithDefaultOpenConnection function:
"IDbCommand command = null;
command = new SqlCommand();
command.CommandText = commandText;
command.Connection = GetNewOpenDefaultConnection();"
hope this helps.
MetalSandman
|
|
|
|
|
Somehwere along this line of code, you're attempting to use an object that wasn't created. For instance:
IDbCommand command = DbManager.GetCommandWithDefaultOpenConnection(commandText);
((SqlDataAdapter)GetDataAdapter(command)).Fill(table);
command.Connection.Close();
Did .GetCommandWithDefaultOpenConnection(commandText) actually return an object? You don't know because you didn't check for it before you attempted to use its .Fill(table) method.
Another couple questions would be, does that table parameter represent an actual object or is it possible that it it a Null reference. Does the GetDataAdapter(command) method call actually return an object?
You're making all these calls to create objects, but your code is assuming that they all worked. It's never checking the return values of any of these calls, and therefore, you have a failure (NullReferenceException) that you cannot easily trace down.
Oh, as a side-bar, you can only have one active DataAdapter per Connection object.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
thanks 4 the advice. i will try to check the returned objects.
|
|
|
|
|
Hi,
I have a datagrid with several columns. Some columns are filled from a datasource others have to be manually typed. Let's say i have columns A, B and C.
When the user fills cells for column A & B i want to use that info to calculate the value in cell C for that given row.
Is there a way to directly control a specific cell in a datagrid in fill it with the desired value.
|
|
|
|
|
You can define an expression for a column, enabling it to contain a value calculated from other column values in the same row or from the column values of multiple rows in the table. To define the expression to be evaluated, use the Expression property of the target column, and use the ColumnName property to refer to other columns in the expression. The DataType for the expression column must be appropriate for the value the expression will return.
<br />
workTable.Columns.Add("Total", typeof(Double));<br />
workTable.Columns.Add("SalesTax", typeof(Double), "Total * 0.086");
Sreejith Nair
[ My Articles ]
|
|
|
|
|
Hi Guys,
Is there anyway I can export my excell file (dynamic) into our SQL server database using c#? All our data from one our system will be generated from excell file every month.
Links or ideas is most welcome! Thanks in advance.
/dabuskol
PS: Can I run the DTS in c#?
|
|
|
|
|
Have you consider using a DTS in SQL Server
Carlos Sánchez Pérez
carlos@hotmail.com
Mathesis Consultores
Cd. Obregon, Sonora, Mexico
|
|
|
|
|
Hi
I have a table (named information) that contains columns with the names (1,2,3,4,5,6,7,8,...210)
I entered a loop from i=1 to i=210 and inside the loop I write the following SQL statement:
string an = "SELECT " + i.ToString() + " FROM information WHERE id = '" + s.Id + "';";
I should get the string contained in the column named i but what I get is i itself (
Whay would be the problem
|
|
|
|
|
Well, you're asking it to select 1 from information where ID = s.ID. What did you expect ? Your columns are NAMED 1,2,3,4,5,6, up to 210 ? Sounds like God is punishing you for a terrible design....
Try this:
"SELECT i." + i.ToString() + " FROM information i WHERE id = '" + s.Id + "';";
Although I don't get why you need to kill performance by making 210 SQL calls instead of one ?
Christian Graus - Microsoft MVP - C++
|
|
|
|
|