# aardio 范例: 设置多线程服务端



```aardio
//设置多线程服务端
import win.ui;
/*DSG{{*/
mainForm = win.form(text="多线程服务端进阶";right=759;bottom=469)
mainForm.add(
edit={cls="edit";left=20;top=9;right=744;bottom=196;dl=1;dr=1;dt=1;edge=1;multiline=1;vscroll=1;z=1};
static={cls="static";text="Static";left=20;top=207;right=740;bottom=451;db=1;dl=1;dr=1;dt=1;z=2}
)
/*}}*/

//HTTP 服务端开发指南: https://www.aardio.com/zh-cn/docs/guide/quickstart/web-server.html
import wsock.tcp.simpleHttpServer;

/*
可在 wsock.tcp.simpleHttpServer 命名空间指定 startUrl 函数的预设选项,
具体有哪些选项请查看 wsock.tcp.simpleHttpServer.startUrl() 函数源码。
直接使用 wsock.tcp.simpleHttpServer.mainThread 也行。
*/
namespace wsock.tcp.simpleHttpServer{
	//startIp = "0.0.0.0"; //不限制本机 IP
    //startPort = 8615; //不指定端口时会自动分配空闲端口
    threadGlobal = { mainForm = ..mainForm }; //指定 HTTP 服务线程的默认全局变量,注意定义线程函数的作用域同名变量不能是局部变量
}
 
//io.open() //打开控制台查看线程错误信息
var url = wsock.tcp.simpleHttpServer.startUrl( 
	function(response,request,session){
		
		response.write("hello <a href='/test/" + string.random(10) + "'>点这里</a>");
		mainForm.edit.print( "HTTP 请求：",request.path );
		
		/*
		如果想更高级一点，这里还可以来个 web.rpc.jsonServer,
		参考「范例 » Web 应用 » JSON » HTTP-RPC-JSON 服务端 」
		*/
	}
);	

import web.form;
var wb = web.form(mainForm.static);
wb.go(url);

mainForm.show();
win.loopMessage();

```

