/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
服务器端:
服务器是由两个textBox(textBox1用来指示IP地址127001,textBox2用来指示服务器端的端口(3456)),一个listBox(listBox用来显示服务器和客户端的连接状况),两个richTextBox(richTextBox1用来显示客户端发送给服务器的信息,richTextBox2用来显示服务器发送给客户端的信息),三个button(button1用来建立连接并接收来自客户端的信息,button2用来关闭连接并停止发送,button3用来发送信息给客户端),代码如下:
private UdpClient server;
private void button1_Click(object sender, SystemEventArgs e)
{ start();}
////////////
private void button2_Click(object sender, SystemEventArgs e)
{ serverClose();
thislistBox1ItemsAdd("The Connection canceled!");
}
////////////
private void start()
{ server=new UdpClient(3456);
IPEndPoint myhost=null;
try
{ thislistBox1ItemsAdd("Waitng for a Client……");
byte[] bytes=serverReceive(ref myhost);
thisrichTextBox1Text=SystemTextEncodingUnicodeGetString(bytes,0,bytesLength);
thislistBox1ItemsAdd("Connection Success!");
}
catch(Exception err)
{ thislistBox1ItemsAdd(errToString()); }
}
//////////
private void button3_Click(object sender, SystemEventArgs e)
{ try
{ thislistBox1ItemsAdd("开始发送信息!");
byte[] bytes=EncodingUnicodeGetBytes(thisrichTextBox2Text);
serverSend(bytes,bytesLength,thistextBox1Text,4500);
}
catch(Exception err)
{ MessageBoxShow(errToString()); }
}
////////////////////////////////////////////////////////////////////////////////////////////
客户端:
客户端是由由两个textBox(textBox1用来指示IP地址127001,textBox2用来指示客户端的端口(4500)),一个listBox(listBox用来显示客户端的状态),两个richTextBox(richTextBox1用来显示服务器发送给客户端的信息,richTextBox2用来显示客户端发送给服务器的信息),两个button(button1用来建立与服务器连接并发送和接收信息,button2用来关闭连接并停止发送),当然在运行时得先运行客户端。代码如下:
private UdpClient client;
//////////////
private void button1_Click(object sender, SystemEventArgs e)
{ client=new UdpClient(4500);
try
{ thislistBox1ItemsAdd("正在向服务器发送数据……");
byte[] bytes=SystemTextEncodingUnicodeGetBytes(thisrichTextBox2Text);
IPEndPoint host=null;
byte[] response=clientReceive(ref host);
thisrichTextBox1Text=SystemTextEncodingUnicodeGetString(response);
}
catch(Exception err)
{ thislistBox1ItemsAdd(errToString());}
}
////////////////
private void button2_Click(object sender, SystemEventArgs e)
{ clientClose();
thislistBox1ItemsAdd("The Connection canceled!");
}客户端远程连接服务器时一般必须手动指明服务器的IP地址和端口号
而在服务器开启侦听服务侦听远程客户端连接时需指定端口号,IP地址可以由服务器内部程序自己获得
你下的这个客户端与服务器端程序中,在配置服务器时就是为客户端指定端口号与IP地址的,IP地址为你本机IP地址,端口号可以是0-65535之间的数,但大多数TCP/IP实现给临时端口分配1024~5000之间的端口号
比如你的IP地址是1921681819,端口号可以配置为8899
配置完成后启动服务器
那么在客户端连接时填入IP地址(1921681819)和端口号(8899)即可与服务器连接
有两个程序,一个是服务端程序,另一个是客户端程序。
服务端程序在本机运行,运行时应该会给出提示让你输入IP地址和端口号,一般IP地址不用输入,就是你的本机IP,端口号则要明确(如8899)。这个端口号是你自己随意设定的,只要不冲突就行。
输入完成后启动服务端程序运行服务器。
然后你运行客户端程序,它也应该有输入框让你输入远程服务端程序的IP地址和端口号(正常的程序应该会这样),就是你在运行服务端程序时设置的IP地址和端口号。你同样可以在本机运行客户端,IP地址输入127001,端口号8899,确定即可。
如果你不知道本机的外网地址,可以登录一些特定的网址查询网站,进入后可以自动检测你的外网地址
发给客户的桌面应用应该属于客户端,CS结构的程序
如果数据库在本地,用户登录是在客户端做登录 *** 作,然后客户端自行去数据库匹配
如果数据库不在本地,那也不需要服务端来做什么判断啊,客户端自己去服务器 数据库匹配就行了呀。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)