客户端:
using System;
using System.Net;
using System.Net.Sockets;
using System.IO;
using System.Text;public class datatimeclient { public static void Main(String[] args) { TcpClient tcpc = new TcpClient();
Byte[] read = new Byte[32]; if (args.Length != 1){
Console.WriteLine("Please input a server name in the command line");
return;
}
String server = args[0]; if (Dns.GetHostByName(server) == null) {
Console.WriteLine("Cannot find server: {0}", server);
return;
}
tcpc.Connect(server, 6789);
Stream s;
try {
s = tcpc.GetStream();
} catch (InvalidOperationException) {
Console.WriteLine("Cannot connect to server: {0}", server);
return;
} int bytes = s.Read(read, 0, read.Length);
String Time = Encoding.ASCII.GetString(read); Console.WriteLine("Received {0} bytes", bytes);
Console.WriteLine("Current date and time is: {0}", Time); tcpc.Close(); Console.WriteLine("Press Return to exit");
Console.ReadLine();
}
}服务端:
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading;public class datatimeserver{ public static void Main(){ DateTime now;
String strDateLine;
Encoding ASCII = Encoding.ASCII;
try{
TcpListener tcpl = new TcpListener(6789);
tcpl.Start();
Console.WriteLine("Server start");
Console.WriteLine("Waiting for clients to connect"); while (true) {
Socket s = tcpl.AcceptSocket();
now = DateTime.Now;
strDateLine = now.ToShortDateString() + " " + now.ToLongTimeString();
Byte[] byteDateLine = ASCII.GetBytes(strDateLine.ToCharArray());
s.Send(byteDateLine, byteDateLine.Length, 0);
s.Close();
Console.WriteLine("Sent {0}", strDateLine);
}
}
catch (SocketException socketError){
Console.WriteLine(socketError);
}
}
}客户端执行时要带参数,就是服务端程序运行所在的机器名字。
试一试,不行的话,再发信息。
using System;
using System.Net;
using System.Net.Sockets;
using System.IO;
using System.Text;public class datatimeclient { public static void Main(String[] args) { TcpClient tcpc = new TcpClient();
Byte[] read = new Byte[32]; if (args.Length != 1){
Console.WriteLine("Please input a server name in the command line");
return;
}
String server = args[0]; if (Dns.GetHostByName(server) == null) {
Console.WriteLine("Cannot find server: {0}", server);
return;
}
tcpc.Connect(server, 6789);
Stream s;
try {
s = tcpc.GetStream();
} catch (InvalidOperationException) {
Console.WriteLine("Cannot connect to server: {0}", server);
return;
} int bytes = s.Read(read, 0, read.Length);
String Time = Encoding.ASCII.GetString(read); Console.WriteLine("Received {0} bytes", bytes);
Console.WriteLine("Current date and time is: {0}", Time); tcpc.Close(); Console.WriteLine("Press Return to exit");
Console.ReadLine();
}
}服务端:
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading;public class datatimeserver{ public static void Main(){ DateTime now;
String strDateLine;
Encoding ASCII = Encoding.ASCII;
try{
TcpListener tcpl = new TcpListener(6789);
tcpl.Start();
Console.WriteLine("Server start");
Console.WriteLine("Waiting for clients to connect"); while (true) {
Socket s = tcpl.AcceptSocket();
now = DateTime.Now;
strDateLine = now.ToShortDateString() + " " + now.ToLongTimeString();
Byte[] byteDateLine = ASCII.GetBytes(strDateLine.ToCharArray());
s.Send(byteDateLine, byteDateLine.Length, 0);
s.Close();
Console.WriteLine("Sent {0}", strDateLine);
}
}
catch (SocketException socketError){
Console.WriteLine(socketError);
}
}
}客户端执行时要带参数,就是服务端程序运行所在的机器名字。
试一试,不行的话,再发信息。
解决方案 »
- 求一个处理图片大小的类或例子
- 关于DELPHI上传文件到web服务器的问题
- Windows服务的问题请帮忙,在线等。谢谢。
- 如何进行两个 datatable 的数据比较?
- 请教DATAGRID中的模版链中添加CHECKBOX控件的控制问题?
- 使用GetChildRows为什么不能获得行状态标记为DataRowState.Added的所有子行??急……
- C# 的完成端口辅助教材
- 问问这里的“高手”,C#可以用来做什么?
- xml 序列化问题 续 20分
- 什么型号的手机可以用来编程?
- 急问:在VS.net2003中C#为何没有onClick事件,是不是版本问题?
- 初学 请教-C#中没有StringGrid控件吗?
getByteLen = mySock.Receive(recvBytes,cls_Const.sockBuffer,0);
}
catch(SocketException ex) {
if (ex.ErrorCode == 10054 || ex.ErrorCode == 10060) {
break;
}
else{
MessageBoxs.Show(ex.Message.ToString() + "\nErrorCode: " + ex.ErrorCode);
break;
}
}
catch(Exception ex){
MessageBoxs.Show(ex.Message.ToString());
break;
}if (getByteLen < 1){
break;
}另外,要注意设置:sockServer.SetSocketOption(
SocketOptionLevel.Socket,
SocketOptionName.ReceiveTimeout,
180 * 1000
);
sockServer.SetSocketOption(
SocketOptionLevel.Socket,
SocketOptionName.SendTimeout,
180 * 1000
);更多可参见:http://expert.csdn.net/Expert/TopicView1.asp?id=1908930