日期:2014-05-17  浏览次数:20873 次

【求助】关于socket的问题~!求大家帮我下
本帖最后由 laimingzhe 于 2013-04-28 11:38:05 编辑
我的客户端不能输入信息发送,而且客户端一连接服务端后,服务端就出现这样的错误。我只是想做一个客户端发送数据,服务端能看见的就行,求大神们帮帮我啊!~



这是客户端代码:

using System ;
using System .Text ;
using System.Net;
using System.Net.Sockets;
using System.Threading;

namespace SocketClient
{
class client
{
private static byte[] result = new byte[1024];
static void Main(string[] args)
{
//设定服务器IP地址
IPAddress ip = IPAddress.Parse("127.0.0.1");
Socket clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
try
{
clientSocket.Connect(new IPEndPoint(ip, 8080)); //配置服务器IP与端口
Console.WriteLine("连接服务器成功");
}
catch
{
Console.WriteLine("连接服务器失败,请按回车键退出!");
return;
}
//通过clientSocket接收数据
// int receiveLength = clientSocket.Receive(result);
// Console.WriteLine("接收服务器消息:{0}",Encoding.ASCII.GetString(result,0,receiveLength));

byte[] bytes = new byte[1024];
String input;
while (true) {
input = Console .ReadLine ();
bytes = Encoding .ASCII .GetBytes (input);
clientSocket .Send(bytes);
if(input == "exit"){
break ;
}
}
        }
}
}


这是服务端代码:


using System;
using System .Net .Sockets ;
using System .Net ;
using System .Text ;
using System .Threading ;
using System.Collections;


namespace SocketServer{
public class unitysocket {

private static Socket soc ;
private static byte[] buffer = new byte[1024];
static void Main(string[] args){
IPAddress ip = IPAddress.Parse ("127.0.0.1");
IPEndPoint ipep = new IPEndPoint (ip, 8080);
soc = new Socket (AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
soc.Bind (ipep);
soc.Listen (10);
Thread thread = new Thread (new ThreadStart (Redata));
thread .Start ();
}
//接受数据
static void Redata(){
Socket s = soc ;
while(true){
try{
s.Accept();
int rs = s.Available;
s.Receive(buffer,0,rs,SocketFlags .None );
if(rs == 0){
continue ;
}
string rdata =  Encoding .ASCII .GetString(buffer).Substring (0,rs);
Console.WriteLine(rdata );
}catch(Exception e ){
Console.WriteLine(e.ToString());
}
}

}
}
}

socket

------解决方案--------------------
这个例子很简单,你参考一下<