客户端:using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Net;
using System.Net.Sockets;namespace netSocketClient
{
class Program
{
private static int sendData(Socket socketServer, byte[] data)
{
int dataTotal = 0;
int size = data.Length;
int dataLeft = size;
int sent; byte[] dataSize = new byte[4];
dataSize = BitConverter.GetBytes(size);
//sent = socketServer.Send(dataSize); while (dataTotal < size)
{
sent = socketServer.Send(data, dataTotal, dataLeft, SocketFlags.None );
dataTotal += sent;
dataLeft -= sent;
}
return dataTotal;
} private static byte[] receiveData(Socket socketServer)
{
int dataTotal = 0;
int recv;
byte[] dataSize = new byte[4]; recv = socketServer.Receive(dataSize, 0, 4, 0);
int size = BitConverter.ToInt32(dataSize,0);
int dataleft = size;
byte[] data = new byte[size]; while (dataTotal < size)
{
recv = socketServer.Receive(data, dataTotal, dataleft, 0);
if (recv == 0)
{
data = Encoding.Unicode.GetBytes("exit");
break;
}
dataTotal += recv;
dataleft -= recv;
}
return data;
} static void Main(string[] args)
{
int Iport = 8080;
string Shost = "127.0.0.1";//指定端口和IP
byte[] data = new byte[1024];
int sent; IPAddress ipAddress = IPAddress.Parse(Shost);
IPEndPoint ipEndPoint = new IPEndPoint(ipAddress, Iport);//定义IPEndPoint对象。 Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
//使用Socket()构造函数创建套接字。 try
{
Console.WriteLine("Connecting....");
socket.Connect(ipEndPoint);//连接到服务器。 data = receiveData(socket);
string stringData = Encoding.Unicode.GetString(data);
Console.WriteLine(stringData ); string message1 = "11211111111111";
string message2 = "2121111111111111111111111111";
string message3 = "312";
string message4 = "41211111111111111111111111111111111111";
string message5 = "5112111111111111111"; sent = sendData(socket,Encoding.Unicode.GetBytes(message1 ));
sent = sendData(socket, Encoding.Unicode.GetBytes(message2));
sent = sendData(socket, Encoding.Unicode.GetBytes(message3));
sent = sendData(socket, Encoding.Unicode.GetBytes(message4));
sent = sendData(socket, Encoding.Unicode.GetBytes(message5)); Console.WriteLine("Disconnecting from server...");
socket.Shutdown(SocketShutdown.Both );
socket.Close();
}
catch (ArgumentException e)
{
Console.WriteLine("ArgumentException:{0}", e);
}
catch (SocketException e)
{
Console.WriteLine("SocketException:{0}", e);
} }
}
}
服务器:using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Net;
using System.Net.Sockets;namespace netSocketServer
{
class Program
{
private static int sendData(Socket socketServer, byte[] data)
{
int dataTotal = 0;
int size = data.Length;
int dataLeft = size;
int sent; byte[] dataSize = new byte[4];
dataSize = BitConverter.GetBytes(size);
sent = socketServer.Send(dataSize); while (dataTotal < size)
{
sent = socketServer.Send(data, dataTotal, dataLeft, SocketFlags.None );
dataTotal += sent;
dataLeft -= sent;
}
return dataTotal;
} private static byte[] receiveData(Socket socketServer)
{
int dataTotal = 0;
int recv;
byte[] dataSize = new byte[4]; recv = socketServer.Receive(dataSize, 0, 4, 0);
int size = BitConverter.ToInt32(dataSize,0);
int dataleft = size;
byte[] data = new byte[size]; while (dataTotal < size)
{
recv = socketServer.Receive(data, dataTotal, dataleft, 0);
if (recv == 0)
{
data = Encoding.Unicode.GetBytes("exit");
break;
}
dataTotal += recv;
dataleft -= recv;
}
return data;
} static void Main(string[] args)
{
int Iport = 8080;
string Shost = "127.0.0.1";//指定端口和IP byte[] data = new byte[1024]; IPAddress ipAddress = IPAddress.Parse(Shost);
IPEndPoint ipEndPoint = new IPEndPoint(ipAddress, Iport);//定义IPEndPoint对象。 Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
//使用Socket()构造函数创建套接字。 socket.Bind(ipEndPoint);
socket.Listen(0);//绑定与侦听。 Console.WriteLine("Wait for connect....");
Socket clientSocket = socket.Accept(); IPEndPoint newclient = (IPEndPoint)clientSocket.RemoteEndPoint;
Console.WriteLine("connected with {0} at port {1}", newclient.Address, newclient.Port); string welcome = "Welcome to my test server";
data = Encoding.Unicode.GetBytes(welcome); int sent = sendData(clientSocket, data); for (int i = 0; i < 10; i++)
{
data = receiveData(clientSocket);
Console.WriteLine(Encoding.Unicode.GetString(data));
} Console.WriteLine("Disconnectd from {0}", newclient.Address);
clientSocket.Close();
socket.Close();
}
}
}为什么得不到我想要的结果呢???
高手帮帮忙!!!!
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Net;
using System.Net.Sockets;namespace netSocketClient
{
class Program
{
private static int sendData(Socket socketServer, byte[] data)
{
int dataTotal = 0;
int size = data.Length;
int dataLeft = size;
int sent; byte[] dataSize = new byte[4];
dataSize = BitConverter.GetBytes(size);
//sent = socketServer.Send(dataSize); while (dataTotal < size)
{
sent = socketServer.Send(data, dataTotal, dataLeft, SocketFlags.None );
dataTotal += sent;
dataLeft -= sent;
}
return dataTotal;
} private static byte[] receiveData(Socket socketServer)
{
int dataTotal = 0;
int recv;
byte[] dataSize = new byte[4]; recv = socketServer.Receive(dataSize, 0, 4, 0);
int size = BitConverter.ToInt32(dataSize,0);
int dataleft = size;
byte[] data = new byte[size]; while (dataTotal < size)
{
recv = socketServer.Receive(data, dataTotal, dataleft, 0);
if (recv == 0)
{
data = Encoding.Unicode.GetBytes("exit");
break;
}
dataTotal += recv;
dataleft -= recv;
}
return data;
} static void Main(string[] args)
{
int Iport = 8080;
string Shost = "127.0.0.1";//指定端口和IP
byte[] data = new byte[1024];
int sent; IPAddress ipAddress = IPAddress.Parse(Shost);
IPEndPoint ipEndPoint = new IPEndPoint(ipAddress, Iport);//定义IPEndPoint对象。 Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
//使用Socket()构造函数创建套接字。 try
{
Console.WriteLine("Connecting....");
socket.Connect(ipEndPoint);//连接到服务器。 data = receiveData(socket);
string stringData = Encoding.Unicode.GetString(data);
Console.WriteLine(stringData ); string message1 = "11211111111111";
string message2 = "2121111111111111111111111111";
string message3 = "312";
string message4 = "41211111111111111111111111111111111111";
string message5 = "5112111111111111111"; sent = sendData(socket,Encoding.Unicode.GetBytes(message1 ));
sent = sendData(socket, Encoding.Unicode.GetBytes(message2));
sent = sendData(socket, Encoding.Unicode.GetBytes(message3));
sent = sendData(socket, Encoding.Unicode.GetBytes(message4));
sent = sendData(socket, Encoding.Unicode.GetBytes(message5)); Console.WriteLine("Disconnecting from server...");
socket.Shutdown(SocketShutdown.Both );
socket.Close();
}
catch (ArgumentException e)
{
Console.WriteLine("ArgumentException:{0}", e);
}
catch (SocketException e)
{
Console.WriteLine("SocketException:{0}", e);
} }
}
}
服务器:using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Net;
using System.Net.Sockets;namespace netSocketServer
{
class Program
{
private static int sendData(Socket socketServer, byte[] data)
{
int dataTotal = 0;
int size = data.Length;
int dataLeft = size;
int sent; byte[] dataSize = new byte[4];
dataSize = BitConverter.GetBytes(size);
sent = socketServer.Send(dataSize); while (dataTotal < size)
{
sent = socketServer.Send(data, dataTotal, dataLeft, SocketFlags.None );
dataTotal += sent;
dataLeft -= sent;
}
return dataTotal;
} private static byte[] receiveData(Socket socketServer)
{
int dataTotal = 0;
int recv;
byte[] dataSize = new byte[4]; recv = socketServer.Receive(dataSize, 0, 4, 0);
int size = BitConverter.ToInt32(dataSize,0);
int dataleft = size;
byte[] data = new byte[size]; while (dataTotal < size)
{
recv = socketServer.Receive(data, dataTotal, dataleft, 0);
if (recv == 0)
{
data = Encoding.Unicode.GetBytes("exit");
break;
}
dataTotal += recv;
dataleft -= recv;
}
return data;
} static void Main(string[] args)
{
int Iport = 8080;
string Shost = "127.0.0.1";//指定端口和IP byte[] data = new byte[1024]; IPAddress ipAddress = IPAddress.Parse(Shost);
IPEndPoint ipEndPoint = new IPEndPoint(ipAddress, Iport);//定义IPEndPoint对象。 Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
//使用Socket()构造函数创建套接字。 socket.Bind(ipEndPoint);
socket.Listen(0);//绑定与侦听。 Console.WriteLine("Wait for connect....");
Socket clientSocket = socket.Accept(); IPEndPoint newclient = (IPEndPoint)clientSocket.RemoteEndPoint;
Console.WriteLine("connected with {0} at port {1}", newclient.Address, newclient.Port); string welcome = "Welcome to my test server";
data = Encoding.Unicode.GetBytes(welcome); int sent = sendData(clientSocket, data); for (int i = 0; i < 10; i++)
{
data = receiveData(clientSocket);
Console.WriteLine(Encoding.Unicode.GetString(data));
} Console.WriteLine("Disconnectd from {0}", newclient.Address);
clientSocket.Close();
socket.Close();
}
}
}为什么得不到我想要的结果呢???
高手帮帮忙!!!!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货