我有一个功课来构建一个应用程序,它将在服务器和客户端之间发送和接收简单的字符串.我知道如何建立连接,但不知道如何发送和接收字符串.这是我的代码:
public partial class Form1 : Form
{
private Thread n_server;
private Thread n_client;
private Thread n_send_server;
private TcpClient client;
private TcpListener listener;
private int port = 2222;
private string IP = " ";
private Socket socket;
public Form1()
{
InitializeComponent();
}
private void exitToolStripMenuItem_Click(object sender, EventArgs e)
{
Application.Exit();
}
public void Server()
{
listener = new TcpListener(IPAddress.Any, port);
listener.Start();
try
{
socket = listener.AcceptSocket();
if (socket.Connected)
{
textBox2.Invoke((MethodInvoker)delegate { textBox2.Text = "Client : " + socket.RemoteEndPoint.ToString(); });
} …Run Code Online (Sandbox Code Playgroud) 这是我的服务器代码我有问题,因为我的程序冻结,不知道有什么问题.
private void button1_Click(object sender, EventArgs e)
{
if (button1.Text == "Listen")
{
tcpl = new TcpListener(IPAddress.Any, 5555);
tcpl.Start();
try
{
// get random word from text
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = "Txt |*.txt";
ofd.Title = "Tekst";
if (ofd.ShowDialog() == DialogResult.OK)
{
String[] myString = File.ReadAllLines(ofd.FileName);
textBox1.Text = myString[r.Next(myString.Length)];
}
Socket socketForClient = tcpl.AcceptSocket();
if (socketForClient.Connected)
{
MessageBox.Show("Client connected" + socketForClient.RemoteEndPoint.ToString());
NetworkStream networkStream = new NetworkStream(socketForClient);
StreamWriter sw = new StreamWriter(networkStream);
StreamReader sr = new StreamReader(networkStream);
string line …Run Code Online (Sandbox Code Playgroud) 我在面板上保存了一组点List<MyVector> savedPoints,然后我用最低坐标y计算了点:
public void searchLowest()
{
MyVector temp;
double ylon = savedPoints[0].getY();
for (int i = 0; i < savedPoints.Count; i++)
{
if (savedPoints[i].getY() > ylon)
{
ylon = savedPoints[i].getY();
lowest = i;
}
}
temp = savedPoints[lowest];
}
Run Code Online (Sandbox Code Playgroud)
在此之后我做了一个计算极角的方法:
public static double angle(MyVector vec1, MyVector vec2)
{
double angle = Math.Atan2(vec1.getY() - vec2.getY(), vec1.getX() - vec2.getX());
return angle;
}
Run Code Online (Sandbox Code Playgroud)
现在不知道如何在我的情况下使用礼品包装算法.WikiPedia 链接上的伪代码对我来说并不是真的可以理解,所以我在这里寻求帮助.
我正在使用C#和win表单(net.framework 4.0)
谢谢你的帮助.