如果我不在文本框中的字符串末尾放置 $ 符号,则会引发错误,提示我必须更改代码,以便用户在文本框中输入的任何内容都应显示。这是一种情况。
在我的第二个场景中,我需要将列表框中的选定项目数发送到控制台。
如何将选定的值存储在变量中?
这是我的客户端代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Windows.Forms;
using System.Net.Sockets;
namespace eg_client
{
public partial class Form1 : Form
{
System.Net.Sockets.TcpClient clientSocket = new System.Net.Sockets.TcpClient();
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
NetworkStream serverStream = clientSocket.GetStream();
string data = textBox2.Text;
byte[] dataB = System.Text.Encoding.Unicode.GetBytes(data);
serverStream.Write(dataB, 0, dataB.Length);
serverStream.Flush();
byte[] inStream = new byte[10025];
serverStream.Read(inStream, 0, (int)clientSocket.ReceiveBufferSize);
string returndata = System.Text.Encoding.ASCII.GetString(inStream);
}
private void Form1_Load_1(object sender, EventArgs e)
{
clientSocket.Connect("127.0.0.1", 8001);
label2.Text = "Client Socket Program - Server Connected ...";
}
}
}
这是我的服务器端代码
using System;
using System.Net.Sockets;
using System.Text;
namespace eg_server
{
class Program
{
static void Main(string[] args)
{
TcpListener serverSocket = new TcpListener(8001);
TcpClient clientSocket = default(TcpClient);
serverSocket.Start();
Console.WriteLine(" >> Server Started");
clientSocket = serverSocket.AcceptTcpClient();
Console.WriteLine(" >> Accept connection from client");
while ((true))
{
try
{
NetworkStream networkStream = clientSocket.GetStream();
byte[] bytesFrom = new byte[10025];
networkStream.Read(bytesFrom, 0, (int)clientSocket.ReceiveBufferSize);
string dataFromClient = System.Text.Encoding.ASCII.GetString(bytesFrom);
dataFromClient = dataFromClient.Substring(0, dataFromClient.IndexOf("$"));
Console.WriteLine(" >> Data from client - " + dataFromClient);
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
}
clientSocket.Close();
serverSocket.Stop();
Console.WriteLine(" >> exit");
Console.ReadLine();
}
}
}
谁可以帮我这个事?