标签: httpserver

php中的http服务器

我想在php中为多个客户端创建服务器的http套接字连接.我怎样才能做到这一点 ?我需要一些资源.

首先,我试图在java中创建服务器.我在java中创建一个服务器.并试图从Android应用程序到达.但是服务器找不到任何客户端.但是当我在java中创建客户端时,它正在工作.我该如何解决这个问题?

php java httpserver java-server

6
推荐指数
1
解决办法
1775
查看次数

如何在使用python的HTTPServer时设置DocumentRoot?

我有以下代码作为我的python服务器:

#!/usr/bin/python3
from http.server import HTTPServer, CGIHTTPRequestHandler

port = 8080
host_name = "localhost"
httpd = HTTPServer((host_name, port), CGIHTTPRequestHandler)
print("server started, to quit press <ctrl-c>")
httpd.serve_forever()
Run Code Online (Sandbox Code Playgroud)

如何设置服务器为其提供服务的DocumentRoot.

python httpserver python-3.x

6
推荐指数
1
解决办法
1万
查看次数

如何在Prolog动态提供的HTML页面中包含图像?

如果我将Prolog HTTP服务器绑定到localhost端口9000,我怎样才能让Prolog为我的图像生成正确的路径?例如,如果我的.pl文件和/ .jpg.png文件位于桌面上,如何让服务器生成如下代码:

<img src="C:\Users\Luka\\Desktop\ImageName.ext"/>,"ext"代表扩展名.我已经看了SWI-Prolog和本教程的文档,但我发现所有抽象路径都很混乱.我在Web服务器方面有很多经验,但是这有很多不同,我在理解它时遇到了很多问题.

这是我的尝试,由我在SWI-Prolog文档和上述教程中学到的(或者至少我认为的)组成:

:- use_module(library(http/thread_httpd)).
:- use_module(library(http/http_dispatch)).
:- use_module(library(http/http_parameters)).
:- use_module(library(http/html_write)).
file_search_path('*', 'C:\\Users\\Luka\\Desktop\\').

server(Port) :-
    http_server(http_dispatch, [port(Port)]).

:- http_handler(root(.), render_base, []).
:- http_handler('/form', process_form, []).

process_form(Request) :-
    http_parameters(Request,
            [name(Name,[atom])]),
            reply_html_page('Posted data: ',['',Name]).

render_base(_Request) :-
    reply_html_page(
        title('Naslov'),
        img([src='/image.png', alt='Incident'])
    ).
Run Code Online (Sandbox Code Playgroud)

再次感谢您的巨大耐心.:-)

image prolog swi-prolog httpserver

6
推荐指数
1
解决办法
543
查看次数

在Golang中,是http.HandleFunc阻止吗?

我在Golang中写了一个httpserver,但是我发现当来自Web浏览器的多个请求时,http.HandleFunc将被阻塞.如何让服务器同时处理多个请求?谢谢.

我的代码是:

func DoQuery(w http.ResponseWriter, r *http.Request) {
    r.ParseForm()
    fmt.Printf("%d path %s\n", time.Now().Unix(), r.URL.Path)
    time.Sleep(10 * time.Second)
    fmt.Fprintf(w, "hello...")
    //why this function block when multi request ?
}

func main() {
    fmt.Printf("server start working...\n")
    http.HandleFunc("/query", DoQuery)
    s := &http.Server{
        Addr:         ":9090",
        ReadTimeout:  30 * time.Second,
        WriteTimeout: 30 * time.Second,
        //MaxHeaderBytes: 1 << 20,
    }
    log.Fatal(s.ListenAndServe())
    fmt.Printf("server stop...")
}
Run Code Online (Sandbox Code Playgroud)

我运行了你的代码,一切都按预期工作.我同时做了两个请求(卷曲localhost:9090 /查询),他们都在10秒后完成了.也许问题出在其他地方?这是我使用的命令:time curl -s localhost:9090/query | echo $(curl -s localhost:9090/query) - tjameson

thakns

真奇怪.当我从chrome请求相同的url时,同时发送两个请求不处理,但是使用cur test可以同时处理.但是当我发送两个请求使用不同的url时,它可以在同一时间处理.

[root @ localhost httpserver]#./ httppServer

服务器开始工作......

1374301593路径/查询?form …

block go httpserver

6
推荐指数
1
解决办法
6174
查看次数

路径上的约束条目'httpMethod'必须具有字符串值

我有一个asp.net Web API项目,在我的WebApiConfig文件中,我定义了以下路由:

config.Routes.MapHttpRoute(
    name: "Web API Get",
    routeTemplate: "api/{controller}",
    defaults: new { action = "Get" },
    constraints: new { httpMethod = new HttpMethodConstraint("GET") }
    );
Run Code Online (Sandbox Code Playgroud)

出于集成测试的目的,我想向a发出请求以HttpSelfHostServer验证我们是否从api调用中收回了正确的数据.我正在做HttpRequestMessage如下:

var httpMethod = new HttpMethod("GET");
var request = new HttpRequestMessage(httpMethod, "http://localhost:XXXX/api/User/");
var results = _client.SendAsync(request).Result;
Run Code Online (Sandbox Code Playgroud)

我希望这会调用UserController上的Get方法,然后返回该方法中定义的结果.但是,我得到以下异常:

System.InvalidOperationException:路由模板'api/{controller}'的路由上的约束条目'httpMethod'必须具有字符串值或者是实现'IHttpRouteConstraint'的类型

http://localhost:XXXX/api/User/当我在浏览器中使用它时,同样的url()可以正常工作,所以我很确定问题必须与我HttpSelfHostServer通过发送请求的方式相同HttpClient.我尝试过使用HttpMethod.Get常量,但这也引发了同样的错误.

有谁知道如何解决这个问题?

c# asp.net httpserver asp.net-web-api asp.net-web-api-routing

6
推荐指数
1
解决办法
6899
查看次数

真实的跨平台分散式异步对等通信

我对网络编程的了解有限,因此,所有评论都非常受欢迎.基本上我的问题归结为以下问题:

Q1.是否存在分散的异步跨平台点对点通信

让我解释一下自己.

  • 如果我们在具有实际IP地址的计算机上运行两个http服务器,那么显然答案是肯定的,假设有人为交互编写协议.

  • 更进一步,如果它们中的一个(或两者)在路由器后面,那么,通过端口转发,仍然可以建立通信.然而,这里的问题开始是因为如果有人想在后台运行这样的服务器,比如说在手机中,依赖这个服务器的应用程序真的可以在家里工作时(我们真的不能指望请求端口转发)到处都是).

  • 但即便如此,

  • Q2.当有人不使用Wi-Fi时,移动电话是否从电信公司获得实际的IP地址?

  • 如果这是真的,那么显然可以通过在智能手机上运行http服务器而不使用Wi-Fi来实现跨平台的异步对等通信.(我知道这不方便,但肯定是可行的.)

最后,我能想到的两个(也许还有更多)相关问题是:

根据Skype的答案,它说:如果其中一个被叫方或两个都没有公共IP,那么它们会通过UDP或TCP将语音流量发送到另一个在线Skype节点. 因此,似乎Skype中没有直接通信,因为他们必须使用中间人进行这种情况.

关于Viber,我找不到这个特定问题的完整答案.人们通过Viber中央服务器互相交谈,还是建立直接连接?当然,如果他们确实建立了直接连接,那么我真的想知道他们如何管理这样的事情,因为手机可能有也可能没有物理地址.即使Viber没有运行而且我在路由器后面,Viber消息如何从我的朋友那里发送到我的手机?

我猜Viber的答案实际上是推送通知,但据我所知,推送通知的所有变体都依赖于开放连接,然后应用程序的服务器通过这样的连接将通知发送给客户端.所以,这种方法让我们觉得它是异步的,但实际上并非如此.我们在欺骗,因为与服务器之间存在持续开放的连接,此外,据我所知,应用程序服务器必须通过该服务器推送通知.示意图:

A>中央应用服务器>中央服务器w /打开连接到我的手机>我

所以,这似乎又是一种集中的方法.

老实说,我能想到的唯一方法是分散和异步(在移动电话上)是在每个平台/设备上运行http服务器,但这是以不使用Wi-Fi为代价而假设一家电信公司真的为每部手机分配一个物理IP地址(我不知道它是否属实,是吗?).

WASTE,暗网,F2F等怎么样?它们是否在某些相关方之间更直接的异步通信意义上提供了优势?是否存在使用此类通信方法的实际应用程序(也包括移动电话).

真的,这不是我想要解决的实际问题,但我想知道最先进的技术是什么,以便我可以弄清楚如何从那里开始.所以,所有评论都非常受欢迎.如果您有关于最新技术的参考资料我也想了解它们,但简短的描述也会很好.

我提前感谢你所有的时间和精力.

p2p asynchronous communication-protocol httpserver push-notification

6
推荐指数
1
解决办法
3408
查看次数

Java httpserver在收到POST请求时崩溃

我正在尝试用Java编写一个可以处理POST请求的简单HTTP服务器.当我的服务器成功收到GET时,它会在POST上崩溃.

这是服务器

public class RequestHandler {
    public static void main(String[] args) throws Exception {
        HttpServer server = HttpServer.create(new InetSocketAddress(8080), 0);
        server.createContext("/requests", new MyHandler());
        server.setExecutor(null); // creates a default executor
        server.start();
    }

    static class MyHandler implements HttpHandler {
        public void handle(HttpExchange t) throws IOException {
            String response = "hello world";
            t.sendResponseHeaders(200, response.length());
            System.out.println(response);
            OutputStream os = t.getResponseBody();
            os.write(response.getBytes());
            os.close();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我用来发送POST的Java代码

// HTTP POST request
private void sendPost() throws Exception {

    String url = "http://localhost:8080/requests";
    URL obj = new …
Run Code Online (Sandbox Code Playgroud)

java post httpserver

6
推荐指数
1
解决办法
2万
查看次数

节点http-server不提供更新的html文件

我正在构建一个带有角度(主要是ui-router)的前端Web应用程序,并通过节点http-server提供html文件来进行本地开发.我注意到当我进行更新时,http-server不提供我的静态html文件,这对我的本地开发很有挑战性.

我已经全局安装了http-server,npm install http-server -g并通过转到根项目文件夹并运行来启动它http-server.默认为localhost:8080-两种似乎有效的方法是在每次更新后或通过chrome隐身模式更改端口号.

有没有办法正常使用http-server而无需更改端口或使用隐身模式?

如果它是相关的,我正在使用MBP v.10.11.3

谢谢!

httpserver node.js angularjs

6
推荐指数
2
解决办法
6354
查看次数

默认情况下,如何在http服务器中提供index.html

我已经在节点环境中创建了一个基本的AngularJS应用。我正在使用http-server模块将文件提供给浏览器。一切正常,除了index.html服务器启动时默认无法提供服务的事实。

我检查了npm注册表以获得http服务器模块的更多选项,还尝试在SO上寻找相关问题,但仍然无法获得我想要的东西。

是否可以指定服务器启动时要拾取的文件。

我的服务器基本上在localhost:8080我想要的时候开始localhost:8080/index.html

我的开始脚本是http-server -a localhost -p 8080 -c-1。如果我做这样的事http-server -a localhost -p 8080 -c-1 index.html,令我惊讶的是它打开了index.html文件,但是是在文件协议而不是在文件协议上提供的localhost

我在这里做错了。

PS我参观了Angular JS种子,那里有官方的例子http-server -a localhost -p 8080 -c-1 ./app。但是,当我这样做时,我收到错误消息,尽管我的结构类似于种子,但Windows无法找到指定的路径

我的结构:

dir
   --app.js
   --index.html
   --node_modules
   --package.json
Run Code Online (Sandbox Code Playgroud)

localhost httpserver angularjs

6
推荐指数
2
解决办法
4373
查看次数

从Python的http.server服务文件-正确响应文件

我只是想从http.server提供PDF文件。这是我的代码:

from http.server import BaseHTTPRequestHandler, HTTPServer

class MyServer(BaseHTTPRequestHandler):

    def do_GET(self):
        self.send_response(200)
        self.send_header('Content-type', 'application/pdf')
        self.send_header('Content-Disposition', 'attachment; filename="file.pdf"')
        self.end_headers()

        # not sure about this part below
        self.wfile.write(open('/filepath/file.pdf', 'rb'))


myServer = HTTPServer(('localhost', 8080), MyServer)
myServer.serve_forever()
myServer.server_close()
Run Code Online (Sandbox Code Playgroud)

我不确定file.pdf现在该如何回应,却一无所获。我相信标头是正确的,但我无法设法将实际文件发送过来。

servlets basehttpserver simplehttpserver httpserver python-3.x

6
推荐指数
1
解决办法
4579
查看次数