我正在使用Python 3.2.2玩一点,想要编写一个简单的Web服务器来远程访问一些数据.这些数据将由Python生成,因此我不想使用SimpleHTTPRequestHandler,因为它是文件服务器,而是我自己的处理程序.
我从互联网上复制了一些例子,但我被卡住了,因为响应输出流拒绝写入正文内容.
这是我的代码:
import http.server
import socketserver
PORT = 8000
class MyHandler(http.server.BaseHTTPRequestHandler):
def do_HEAD(self):
self.send_response(200)
self.send_header("Content-type", "text/html")
self.end_headers()
def do_GET(self):
self.send_response(200)
self.send_header("Content-type", "text/html")
self.end_headers()
print(self.wfile)
self.wfile.write("<html><head><title>Title goes here.</title></head>")
self.wfile.write("<body><p>This is a test.</p>")
# If someone went to "http://something.somewhere.net/foo/bar/",
# then s.path equals "/foo/bar/".
self.wfile.write("<p>You accessed path: %s</p>" % self.path)
self.wfile.write("</body></html>")
self.wfile.close()
try:
server = http.server.HTTPServer(('localhost', PORT), MyHandler)
print('Started http server')
server.serve_forever()
except KeyboardInterrupt:
print('^C received, shutting down server')
server.socket.close()
Run Code Online (Sandbox Code Playgroud)
编写响应正文的正确代码应该是什么?
非常感谢.
编辑:
错误是:
...
File "server.py", line …Run Code Online (Sandbox Code Playgroud) 我正在开发一些小部件进入一个库,供我工作的公司内部使用.
我不知道为小部件设置样式的推荐方法是什么.
至少有以下几种方式:
使用Widget.setPrimaryStyleName并让用户提供外部css.我们使用maven原型来构建应用程序,因此我们可以提供默认样式.无论如何我不太喜欢它.
使用GWT 2.0 CssResourceBundle.因此我们可以将CSS编译到模块中并对其进行优化(并且它也可以依赖于浏览器).
提供具有样式的模块.类似于默认的GWT主题.但我不知道这究竟是如何运作的.
我想要:
你对这个主题有什么经验?
注意:如果您正在寻找明确的答案,请查看所有答案和评论.有不同的想法和所有好的想法.然后选择最适合你的:)
我想创建一个功能(对我自己),其中点击一个按钮(或者说任何事件或任何可以触发我的程序的事件),将显示一个弹出窗口,它将询问类的名称,它拥有的对象和更多的事情.然后按OK,它将创建一个带有预定义方法框架的java文件,继承已知的接口和...
那么,基本上该怎么做?我是否需要为eclipse创建一个插件,或者在eclipse中还有其他东西.
PS请更改标题.我无法想到更好的一个.
我很难理解IEEE 754 Rounding约定:
如果我有一个由二进制点右边的9位组成的二进制数,我需要使用最右边的3位来确定舍入,我该怎么办?
这是家庭作业所以这就是为什么我对这个问题模糊不清......我需要帮助这个概念.
谢谢!
我有一个主位图,我需要在其他位图上绘制.
主位图具有一些半透明像素(具有alpha通道变量值的像素),因此在其上绘制的其他位图应与其合并,而不是完全覆盖颜色.
如何设置画布相对于半透明像素在主位图上绘制位图?
注意:alpha不适用于整个位图.这是每个像素.
我想在我的 Kotlin 文档中提供代码示例,并且我发现文档@sample <identifier>中有一个关键字。但我不确定我应该做什么。
如果我想使用该功能,我可以有哪些缺点
foo(int num, ...)
Run Code Online (Sandbox Code Playgroud)
实现可变数量的参数?
我知道你只能使用一种数据类型的第一个缺点.
还有其他办法吗?
我正在创建一个泛型类,它有一个方法可以对数组集合进行排序,该集合可以是Book,也可以是CD.我在两个类型类中实现了Comparable,并尝试在GenericCollection类中对数组进行排序.
我的方法现在看起来像这样:
public void sort(){
for (int i = 0; i < collection.length; i++) {
for (int j = 0; j < collection.length; j++) {
if (((T)collection[i]).compareTo((T)collection[j]) > 0){
T t = (T)collection[i];
collection[i] = collection[j];
collection[j] = t;
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
这给了我一个错误,即Object无法比较.如果我尝试强制转换为类型T,那么我得到的错误是T未定义为CompareTo.如果我尝试类似的东西:
<T extends Comparable>
Run Code Online (Sandbox Code Playgroud)
我可以编译,但我得到一个运行时错误,即使我在使用此类的两种类型中都定义了Comparable.
如何让Generic类型能够在自己的类中运行compareTo方法.
谢谢你的帮助.
我试图使用以下代码从网络套接字读取一些数据 -
Socket s = new Socket(address, 502);
response = new byte[1024];
InputStream is = s.getInputStream();
int count = is.read(response, 0, 100);
Run Code Online (Sandbox Code Playgroud)
数据量不大.它总共是16个字节.但是read()语句不能一次读取所有数据.它只能将8个字节的数据读入我的缓冲区.
我必须多次调用read()才能读取数据 -
Socket s = new Socket(address, 502);
response = new byte[1024];
InputStream is = s.getInputStream();
int count = is.read(response, 0, 100);
count += is.read(response, count, 100-count);
Run Code Online (Sandbox Code Playgroud)
为什么会这样?为什么read()不能一次读取整个流?
请注意,数据不会逐渐到达.如果我在通过调用Thread.sleep(2000)读取数据之前等待2秒,则行为保持不变.
我的应用程序中有一个服务(由一个线程创建),在我内部创建另一个线程,这是一个TCP服务器.启动线程后短时间(并完全工作,接收和处理收到的包)服务被"超时执行服务"和我服务中的ANR 杀死.
这是我的服务代码和正在完成所有工作的线程:
public class Android_Wifi_Service extends Service {
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
super.onStartCommand(intent, flags, startId);
handleStart();
return START_STICKY;
}
private void handleStart() {
Server server=new Server(this);
new Thread(server).run();
}
@Override
public void onDestroy(){
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的主题:
public class Server implements Runnable {
private boolean end=false;
private Context context;
public Server(Context _context){
this.context=_context;
}
@Override
public void run() {
try {
ServerSocket ss= new …Run Code Online (Sandbox Code Playgroud)