|
Hi, I built a checkers game in C# in which players sitting next to each other can play. I am now trying to upgrade it, to become internet based. I want to generate a simple P2P connection. I wrote this code to see if a connection is established but for some reason it freezes when pressing the connection button. Please help me sort this out.
Or if you think this code is unsuitable, than please help me out with this..
here is the code
string clientOrServer;
Stream _stream;
string read;
Stream getTcpStream()
{
TcpClient client;
IPEndPoint meetingPoint = new IPEndPoint(IPAddress.Parse("79.178.57.135"), 8080);
if(clientOrServer.ToLower().StartsWith("c"))
{
client = new TcpClient();
client.Connect(meetingPoint);
}
else
{
TcpListener listener = new TcpListener(meetingPoint.Port);
listener.Start();
client=listener.AcceptTcpClient();
listener.Stop();
}
return client.GetStream();
}
void clientServerclick(System.Windows.Forms.PictureBox picturebox)
{
StreamWriter writer = new StreamWriter(_stream);
writer.AutoFlush = true;
if (picturebox == pictureBox89)
{
writer.WriteLine("{0}", pictureBox89);
}
if (picturebox == pictureBox51)
{
writer.WriteLine("{0}", pictureBox51);
}
}
void readclick()
{
StreamReader reader = new StreamReader(_stream);
string a = reader.ReadLine();
Console.WriteLine(a);
}
this is the code for client generating connection
clientOrServer = "c";
_stream = getTcpStream();
Console.WriteLine("Connected");
server
clientOrServer = "s";
_stream = getTcpStream();
Console.WriteLine("Connected");
this runs when a click on a soldier occurs
clientServerclick(pictureBox);
If this code is off, please guide me on how to accomplish this sort of thing.THANKS
|
|
|
|
|
try to create a worker Thread to call readclick()
Calin
|
|
|
|
|
do I need a reader thread too then?
|
|
|
|
|
or add the thread only for getTcpStream();
Calin
|
|
|
|
|
can u give the line for this please.. because when i try
Thread tcp = new Thread(new ThreadStart(getTcpStream));
it gives me this error
Error 1 'System.IO.Stream WindowsFormsApplication1.Form1.TCPChatApplication.getTcpStream()' has the wrong return type
|
|
|
|
|
ThreadStart() takes the name of a method that has no return type (i.e. is void) and takes no parameters.
Your getTcpStream method returns a stream.
Regards
David R
|
|
|
|
|
Thank you very much! finaly worked it out...
|
|
|
|
|
I want to pass "Huntington_Positions" into the function. How do I do that. a string will not work
ProcessFiles(fileInfo.FullName,"Huntington_Positions","dbo.Huntington_Position");
private static void ProcessFiles(string strFile, ? ,string strTable)
{
<br />
FileHelperEngine Fh1 = new FileHelperEngine(typeof(?)); <br />
bulkCopy = new SqlBulkCopy(SQLConnection);
bulkCopy.DestinationTableName = strTable;
Fh1.Options.IgnoreEmptyLines = true;
dt = Fh1.ReadFileAsDT(strFile);
try
{
bulkCopy.WriteToServer(dt);
}
catch (Exception Ex)
{
Console.WriteLine("ProcessFiles.bulkCopy: " + Ex.ToString());
}
}
--------------------------------------------------------
Its referencing a class file for the dll.
http://www.filehelpers.com/example_easy.html
|
|
|
|
|
I have no idea what a 'Huntingdon_Positions' is - but looking at here[^] (if this is what you're referring to, it's simply a class (SampleType in their docs).
You can't pass a class into a method, but you can pass a Type.
ProcessFiles(fileInfo.FullName, typeof(Huntington_Positions), "dbo.Huntington_Position");
private static void ProcessFiles(string strFile, Type type, string strTable)
{
FileHelperEngine Fh1 = new FileHelperEngine(type);
}
DaveBTW, in software, hope and pray is not a viable strategy. (Luc Pattyn)Visual Basic is not used by normal people so we're not covering it here. (Uncyclopedia)
|
|
|
|
|
|
When posting with errors/exceptions it's helpful if you indicate which line the exception occurred on!
Anyway, you didn't change the FileHelperEngine instanciation line as I suggested previously, so I guess the error is there.
Fh1 = new FileHelperEngine(typeof(type)); now needs to be
Fh1 = new FileHelperEngine(type); as you already have the Type in type - no need (and it won't compile) to do a typeof on it.
DaveBTW, in software, hope and pray is not a viable strategy. (Luc Pattyn)Visual Basic is not used by normal people so we're not covering it here. (Uncyclopedia)
|
|
|
|
|
my t1.txt is:
1
5
18
125
.
.
.
I want to read a specific value from txt file( sample 3.value that is 18)
using System;<br />
using System.Collections.Generic;<br />
using System.IO;<br />
<br />
class Program<br />
{<br />
static void Main()<br />
{<br />
const string f =(@"C:\t1.txt");<br />
<br />
List<string> lines = new List<string>();<br />
<br />
using (StreamReader r = new StreamReader(f))<br />
{<br />
string line;<br />
while ((line = r.ReadLine()) != null)<br />
{<br />
lines.Add(line);<br />
}<br />
}<br />
<br />
foreach (string s in lines)<br />
{ <br />
Console.WriteLine(s);<br />
}<br />
<br />
}<br />
}</string></string>
|
|
|
|
|
You could try using File.ReadAllLines[^] which returns an array of data from your file.
If you want to refer to specific line (for example 3 as in your post) you would simply use ...yourvariable[2]...
|
|
|
|
|
this means you want to read the value from line X?
you may implement a helper method wich takes the StreamReader and returns the value contained in a file at line X. use a loop to skip the lines and count them.
Calin
|
|
|
|
|
If you want a value from the specific line, you can simply count the lines and use the value from the correct one. Just like this:
string line;
int current_line = 0;
int desired_line = 3;
while ((line = r.ReadLine()) != null)
{
current_line++;
if(current_line == desired_line)
{
lines.Add(line);
break;
}
}
This is just a sample logic. I hope you can use something like that for your case.
|
|
|
|
|
|
To comment on this post, I'd write this code a little different and smaller, like this.
It maybe is just my style, but I think it's better:
int desired_line = 3;
for(int current_line = 0, string line; (line = r.ReadLine()) != null; current_line++)
{
if(current_line == desired_line)
{
lines.Add(line);
break;
}
}
|
|
|
|
|
thanks for replies
t1.txt is:
11
22
33
44
55
.
.
how can I get x value? x=a(line's 1 value)+b(line's 3 value)+c(line 5)that is c must 99
using System;<br />
using System.IO;<br />
<br />
class MainClass<br />
{<br />
public static void Main(string[] args)<br />
{<br />
try<br />
{<br />
FileStream fs = new FileStream("c:\\t1.txt", FileMode.Open);<br />
StreamReader sr = new StreamReader(fs);<br />
<br />
string line = "";<br />
<br />
int lineNo = 0;<br />
do<br />
{<br />
line = sr.ReadLine();<br />
if (line != null)<br />
{<br />
Console.WriteLine("{0}: {1}", lineNo, line);<br />
lineNo++;<br />
x=a+b+c;-------->values=?<br />
}<br />
} while (line != null);<br />
}<br />
catch (Exception e)<br />
{<br />
Console.WriteLine("Exception in ShowFile: {0}", e);<br />
}<br />
}<br />
}
|
|
|
|
|
First of all: use the pre tag, it's better than the code tag.
Secondly it is not as tough as you think. Just use common sense for this question:
You are using the do while construction, but if I where you, I should use the while function or for function.
List<string> lines = new List<string>();
String line;
while((line = sr.ReadLine()) != null)
{
lines.Add(line);
}
try
{
int numberOne = Int32.Parse(lines[0]);
int numberThree = Int32.Parse(lines[2]);
int numberFive = Int32.Parse(lines[4]);
int x = numberOne + numberThree + numberFive;
}
catch {}
</string></string>
You could use the TryParse method, but you can also use the try catch block.
Good luck!
|
|
|
|
|
wonderful
thank you very much
|
|
|
|
|
Hi!
I have a world map in my GUI and I want the countries to highlight when mouse hovers over a country. Something like this http://www.netzgesta.de/mapper/
Is this possible to do this with c# at all?
I have read about the Imagemap controller with which it is possible to do polygon hotspots, but I'm not sure this is exactly what I need. It can't change anything within the coordinates of the polygon when mouse hovers over the hotspots.
Can someone give me a clue what to do?
|
|
|
|
|
|
LMAO! Just posted the exact same link
DaveBTW, in software, hope and pray is not a viable strategy. (Luc Pattyn)Visual Basic is not used by normal people so we're not covering it here. (Uncyclopedia)
|
|
|
|
|
Yes, but it doesn't have that hover effect.
|
|
|
|
|
So use it as a base and program the hover effect yourself.
DaveBTW, in software, hope and pray is not a viable strategy. (Luc Pattyn)Visual Basic is not used by normal people so we're not covering it here. (Uncyclopedia)
|
|
|
|