1. 怎么写一个QQ的服务器端
怎么能用MFC做服务器呢!你要是想做一个简单的即时通讯服务器,我建议你在windows下用IOCP了,在linux下用epoll。这样的话应该可以支持大几百个人同时在线,最重要是业务逻辑不好写,数据库可以自己选一个,我们用的是oracle。qq现在的客户端不是用的MFC,他们是调用自己写的界面类库,这么画面更漂亮,不用太依赖微软。
2. c#怎么写一个服务器端的socket
namespace SocketTest{ class Program { public static void SendMessage() { Socket socket = serverSocket.Accept(); Console.WriteLine("Connected a client:{0}",socket.RemoteEndPoint); socket.Send(Encoding.ASCII.GetBytes("welcome to server")); //Thread thread = new Thread(ReceiveMessage); // thread.Start(); } public static void ReceiveMessage(object obj) { Socket socket = (Socket)obj; byte[] data = new byte[1024]; int len = socket.Receive(data); string dataString = Encoding.ASCII.GetString(data, 0, len); Console.WriteLine("Receive Data:{0} from {1}", dataString,socket.RemoteEndPoint); //Thread thread = new Thread(SendMessage); //thread.Start(socket); } static Socket serverSocket; static void Main(string[] args) { //定义接收数据长度变量 int recv; //定义接收数据的缓存 byte[] data = new byte[1024]; //定义侦听端口 IPEndPoint ipEnd = new IPEndPoint(IPAddress.Any, 5566); //定义套接字类型 serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); //连接 serverSocket.Bind(ipEnd); //开始侦听 serverSocket.Listen(10); //控制台输出侦听状态 Console.Write("Waiting for a client"); //Socket client; while (true) { //一旦接受连接,创建一个客户端 Socket client = serverSocket.Accept(); //获取客户端的IP和端口 IPEndPoint ipEndClient = (IPEndPoint)client.RemoteEndPoint; //输出客户端的IP和端口 Console.WriteLine("Connect with {0} at port {1}", ipEndClient.Address, ipEndClient.Port); //定义待发送字符 string welcome = "Welcome to my server"; //数据类型转换 data = Encoding.ASCII.GetBytes(welcome); while (true) { try { //发送 client.Send(data, data.Length, SocketFlags.None); //接收数据可以用线程也可以不用 //ReceiveMessage(client); Thread thread = new Thread(ReceiveMessage); thread.Start(client); ////对data清零 //data = new byte[1024]; ////获取收到的数据的长度 //recv = client.Receive(data); ////如果收到的数据长度为0,则退出 //if (recv == 0) // break; ////输出接收到的数据 //Console.WriteLine(Encoding.ASCII.GetString(data, 0, recv)); //将接收到的数据再发送出去 // client.Send(data, recv, SocketFlags.None); } catch (Exception) { client.Close(); serverSocket.Close(); } } client.Close(); } //Console.WriteLine("Disconnect form{0}", ipEndClient.Address); serverSocket.Close(); } }}
3. 请问如何写一个java 服务器端的servlet,然后可以当客户端发出http请求的时候,可以接受请求,读取数据库
在用printwriter.write(json) 返回给客户端。
接受从客户端传来的param,如servlet.getParameter("name");
在定义一个String json = "";
json="这里要写你客户端json Store的格式"
printwriter.write(json);
4. JAVA问题:用socket编写一个服务器端程序
import java.net.*;
import java.io.*;
public class Server {
private ServerSocket ss;
private Socket socket;
private BufferedReader in;
private PrintWriter out;
public Server() {
try {
ss = new ServerSocket(8888);
while (true) {
socket = ss.accept();
in = new BufferedReader(new InputStreamReader(socket
.getInputStream()));
out = new PrintWriter(socket.getOutputStream(), true);
String line = in.readLine();
if("hello".equals(line)){
out.println("hello");
out.close();
}
in.close();
socket.close();
}
ss.close();
} catch (IOException e) {
}
}
public static void main(String[] args) {
new Server();
}
}
5. C++网络编程(socket)我要写一个服务器端程序和一个客户端程序
可以啊,解决方案上右键,添加项目,不过没这个必要啊,因为你又不能只开一个VS来同时调试两个项目。
设成启动项目后可以按F5进行调试运行,或者CTRL+F5进行不调试运行,不过最后还是只能调试一个项目
6. C#, WCF如何创建一个简单的服务器端和客户端程序
首先VS中的模板WCF SERVICE APP 项目,是一个承载到IIS的服务,用过web service就清楚,部署都差不多。
客户端引用wcf服务,知道url地址就行了,客户端添加服务引用,和添加以前的web service差不多。
客户端使用到服务端的数据模型,在服务端定义实体类时,添加 datacontract属性和datamember属性就ok.
推荐一些教程地址,可以选择了看看,你提到的这些问题在教程中都有涉及到。
1,WCF系列学习5天速成 http://www.cnblogs.com/huangxincheng/category/340145.html
2,WCF入门学习【Sheldon_Lou】http://www.cnblogs.com/sheldon-lou/category/648478.html
3,无废话WCF系列教程 http://www.cnblogs.com/iamlilinfeng/category/415833.html
4,WCF编程 http://www.cnblogs.com/zxj159/category/604460.html
5,WCF入门【停留的风】http://www.cnblogs.com/yank/category/568085.html
6,WCF初探【wangweimutou】http://www.cnblogs.com/wangweimutou/tag/WCF/
7,WCF【指尖流淌】http://www.cnblogs.com/jianliutang/category/277163.html
8,WCF【xfrog】---重点 http://www.cnblogs.com/xfrog/tag/WCF/
7. 求用java写一个ftp服务器客户端程序。
import java.io.*;
import java.net.*;public class ftpServer extends Thread{ public static void main(String args[]){
String initDir;
initDir = "D:/Ftp";
ServerSocket server;
Socket socket;
String s;
String user;
String password;
user = "root";
password = "123456";
try{
System.out.println("MYFTP服务器启动....");
System.out.println("正在等待连接....");
//监听21号端口
server = new ServerSocket(21);
socket = server.accept();
System.out.println("连接成功");
System.out.println("**********************************");
System.out.println("");
InputStream in =socket.getInputStream();
OutputStream out = socket.getOutputStream();
DataInputStream din = new DataInputStream(in);
DataOutputStream dout=new DataOutputStream(out);
System.out.println("请等待验证客户信息....");
while(true){
s = din.readUTF();
if(s.trim().equals("LOGIN "+user)){
s = "请输入密码:";
dout.writeUTF(s);
s = din.readUTF();
if(s.trim().equals(password)){
s = "连接成功。";
dout.writeUTF(s);
break;
}
else{s ="密码错误,请重新输入用户名:";<br> dout.writeUTF(s);<br> <br> }
}
else{
s = "您输入的命令不正确或此用户不存在,请重新输入:";
dout.writeUTF(s);
}
}
System.out.println("验证客户信息完毕...."); while(true){
System.out.println("");
System.out.println("");
s = din.readUTF();
if(s.trim().equals("DIR")){
String output = "";
File file = new File(initDir);
String[] dirStructure = new String[10];
dirStructure= file.list();
for(int i=0;i<dirStructure.length;i++){
output +=dirStructure[i]+"\n";
}
s=output;
dout.writeUTF(s);
}
else if(s.startsWith("GET")){
s = s.substring(3);
s = s.trim();
File file = new File(initDir);
String[] dirStructure = new String[10];
dirStructure= file.list();
String e= s;
int i=0;
s ="不存在";
while(true){
if(e.equals(dirStructure[i])){
s="存在";
dout.writeUTF(s);
RandomAccessFile outFile = new RandomAccessFile(initDir+"/"+e,"r");
byte byteBuffer[]= new byte[1024];
int amount;
while((amount = outFile.read(byteBuffer)) != -1){
dout.write(byteBuffer, 0, amount);break;
}break;
}
else if(i<dirStructure.length-1){
i++;
}
else{
dout.writeUTF(s);
break;
}
}
}
else if(s.startsWith("PUT")){
s = s.substring(3);
s = s.trim();
RandomAccessFile inFile = new RandomAccessFile(initDir+"/"+s,"rw");
byte byteBuffer[] = new byte[1024];
int amount;
while((amount =din.read(byteBuffer) )!= -1){
inFile.write(byteBuffer, 0, amount);break;
}
}
else if(s.trim().equals("BYE"))break;
else{
s = "您输入的命令不正确或此用户不存在,请重新输入:";
dout.writeUTF(s);
}
}
din.close();
dout.close();
in.close();
out.close();
socket.close();
}
catch(Exception e){
System.out.println("MYFTP关闭!"+e);
}
}}
8. 如何写一个Web服务器
针对web服务器:首先你要去了解HTTP协议,web server说到底就是一个遵循Http协议的应用程序。可以先写一个简单的,然后去关注一些high performance相关的, i/o 复用(epoll), event loop, non-blocking, C10k问题,tcp调优(tcp_cork, tcp_nodelay...),高级I/O function(e.g. sendfile, writev, readv, mmap, splice, tee...), 常用的服务端架构(推荐陈硕的Muo C++那本书,不是让你看muo, 而是他讲的一些思想、做法和框)
9. 如何在Unity中写服务端
建议从底层开始写,用socket+C#,新手写服务器比较困难,找找别人写的成品框架比较好,最好别用引擎的unet,坑比较多
10. 如何写一个简单的HTTP服务器
这是一个真实的HTTP请求的例子,其中每一行都以\r\n结尾。由于我们写的是简单的服务器,所以我们只关心其中的几行。
第一行称为请求行,GET是请求方法,表示获取资源,除此之外还有POST方法、PUT方法、HEAD方法、DELETE方法和OPTIONS方法等。由于我们写一个简单的服务器,所以暂时仅支
持GET方法。/是URI,表示客户希望访问的资源的URI。HTTP/1.1是HTTP协议的版本,此例中表示1.1版本。我们需要解析请求行,需要解析出方法字段、URI和HTTP协议版本。
第二行是Host字段,表示所请求的资源所在的主机名和端口号。
第三行User-Agent是客户的浏览器的类型,此例是运行在Ubuntu上的Firefox浏览器。
第四行Accept表示客户接受的资源的类型。
第四行Accept-Language表示客户接受的语言类型。
第五行Connection表示服务器在发送完客户请求的数据之后是否断开TCP连接。keep-alive表示不断开,close表示断开。