精华内容
下载资源
问答
  • dsocket = new Socket(remoteHost,remotePort,InetAddress.getLocalHost(),20); PrintWriter dout = new PrintWriter(dsocket.getOutputStream(),true); if(param.equals("") || param.equals("LIST")) ...
  • 利用Socket搭建简单Http服务器

    千次阅读 2011-04-15 17:27:00
    一直不理解Http协议,觉得很抽象很神秘,看 《how tomcat work》时看到搭建了一个简单的http服务器,发现协议其实就是对消息格式的规范,就是大家都按这个规范约定的格式发消息收消息。1.建立sockerserver服务...

    一直不理解Http协议,觉得很抽象很神秘,看 《how tomcat work》时看到搭建了一个简单的http服务器,发现协议其实就是对消息格式的规范,就是大家都按这个规范约定的格式发消息收消息。

    1.建立sockerserver服务

    2.监听相应端口

    3.对监听到的字节进行解析

    Request 实际上就是解析HTTP协议并得到资源的请求路径uri。

    4.对请求进行响应

    这里实际上根据request分析的uri进行资源的字节化,输出到socket的out

    可以看到其实就是简单的将资源用字节流输出。

    最后提供完整的代码包(http://download.csdn.net/source/3194644),运行HttpServer.java 后可以通过浏览器访问:http://localhost:8088/index.htm 可以看到静态页面,通过后台可以看到请求的Http信息。

    展开全文
  • 现在碰到了一个棘手的服务器问题,描述如下:服务器采用nettytcp协议作为client-server通讯方式,tcp好处是与客户端连接为长连接,消息格式精简,传递比较快速,而且服务器可以发送push消息。但现在问题是...

    现在碰到了一个棘手的服务器问题,描述如下:服务器采用netty的tcp协议作为client-server的通讯方式,tcp的好处是与客户端的连接为长连接,消息格式精简,传递比较快速,而且服务器可以发送push消息。但现在的问题是,公司的网络出口ip经常会变更,而tcp是根据ip+port来判断客户端连接的,因此随着ip的变化,该连接肯定失效了。游戏会发生让玩家重新登陆的情况,这样的话,玩家是无法接受的,相当于无缘无故被踢出了游戏。

     

    但是不少公司都是仅有几个出口ip,说明这种情况还是比较多见的,而且像qq等软件,用了tcp或者udp协议,也可以很好的适应这种环境,因此肯定有合适的解决方案。现在想到的一种办法是,每个tcp请求,都带有session信息,可以用一个64位的标志id的字节来存储,这样对协议增加的网络流量是微乎其微的,服务器需要对每个请求sessionId进行处理,判断是否有效,如果有效的话可以直接跟服务器通讯,无效的话需要重新登陆,获取新的sessionId。

     

    另外一个重要问题是,客户端的tcp连接是无法估计保障的,可能玩家会突然关闭浏览器,而不会给服务器发送close信息。如果服务器对每个客户端的连接建立一个对象的话,需要管理这个对象的生命周期,设置一个失效时间,例如30分钟,如果30分钟没有操作的话,就自动销毁,这样可以防止对象累计越来越多产生内存泄露的情况。

    展开全文
  • 服务器端代码如下,当客户端连上服务器服务器首先把图片数据尺寸传输过去,然后再传输图片。 # server import socket # 导入 socket 模块 import base64 s = socket.socket() # 创建 socket 对象 host = ...

    使用python在网络上传送图片数据,需要以byte格式读取图片,这样才可以通过socket传输。

    当客户端连上服务器,服务器首先把图片数据的尺寸传输过去,然后再传输图片。

    服务器端代码

    # server
    import socket               # 导入 socket 模块
    
    s = socket.socket()         # 创建 socket 对象
    host = socket.gethostname()  # 获取本地主机名
    port = 12345                # 设置端口
    s.bind((host, port))        # 绑定端口
    
    pic_path = r'd:\Pictures\7.JPG'
    
    with open(pic_path, 'rb') as f:
        data = f.read()
    
    s.listen(5)                 # 等待客户端连接
    while True:
        conn, addr = s.accept()     # 建立客户端连接
        print('连接地址:', addr)
        conn.send(str(len(data)).encode('utf-8'))
        conn.send(data)
        conn.close()                # 关闭连接

    客户端连接到服务器端后,会首先接收图片数据大小以方便处理,然后接收图片数据,写到路径下。

    客户端代码

    import socket  # 导入 socket 模块
    
    
    s = socket.socket()  # 创建 socket 对象
    host = socket.gethostname() 
    port = 12345  # 设置端口号
    
    s.connect((host, port))
    r = s.recv(1024)
    print(r)
    data_len = eval(r)
    data = s.recv(data_len)
    s.close()
    
    
    with open(r'C:\Users\Desktop\1.png', 'ba') as f:
        f.write(data)
        f.close()
    

     

    参考:https://www.runoob.com/python/python-socket.html

     

    展开全文
  • socket://<hostport>,前缀”socket://”必须指定,hostport是以host:port格式出现的服务器地址和连接端口字符串,服务器地址可以是主机名,也可以是IP地址,端口号是Socket服务器进行监听端口号
  • address地址的格式取决于地址族。在AF_INET下,以元组(host,port)的形式表示地址。sk.listen(backlog)开始监听传入连接。backlog指定在拒绝连接之前,可以挂起的最大连接数量。backlog等于5,表示内核已经接到了连接...

    sk.bind(address)

    s.bind(address) 将套接字绑定到地址。address地址的格式取决于地址族。在AF_INET下,以元组(host,port)的形式表示地址。

    sk.listen(backlog)

    开始监听传入连接。backlog指定在拒绝连接之前,可以挂起的最大连接数量。

    backlog等于5,表示内核已经接到了连接请求,但服务器还没有调用accept进行处理的连接个数最大为5

    这个值不能无限大,因为要在内核中维护连接队列

    sk.setblocking(bool)

    是否阻塞(默认True),如果设置False,那么accept和recv时一旦无数据,则报错。

    sk.accept()

    接受连接并返回(conn,address),其中conn是新的套接字对象,可以用来接收和发送数据。address是连接客户端的地址。

    接收TCP 客户的连接(阻塞式)等待连接的到来

    sk.connect(address)

    连接到address处的套接字。一般,address的格式为元组(hostname,port),如果连接出错,返回socket.error错误。

    sk.connect_ex(address)

    同上,只不过会有返回值,连接成功时返回 0 ,连接失败时候返回编码,例如:10061

    sk.close()

    关闭套接字

    sk.recv(bufsize[,flag])

    接受套接字的数据。数据以字符串形式返回,bufsize指定最多可以接收的数量。flag提供有关消息的其他信息,通常可以忽略。

    sk.recvfrom(bufsize[.flag])

    与recv()类似,但返回值是(data,address)。其中data是包含接收数据的字符串,address是发送数据的套接字地址。

    sk.send(string[,flag])

    将string中的数据发送到连接的套接字。返回值是要发送的字节数量,该数量可能小于string的字节大小。即:可能未将指定内容全部发送。

    sk.sendall(string[,flag])

    将string中的数据发送到连接的套接字,但在返回之前会尝试发送所有数据。成功返回None,失败则抛出异常。

    内部通过递归调用send,将所有内容发送出去。

    sk.sendto(string[,flag],address)

    将数据发送到套接字,address是形式为(ipaddr,port)的元组,指定远程地址。返回值是发送的字节数。该函数主要用于UDP协议。

    sk.settimeout(timeout)

    设置套接字操作的超时期,timeout是一个浮点数,单位是秒。值为None表示没有超时期。一般,超时期应该在刚创建套接字时设置,因为它们可能用于连接的操作(如 client 连接最多等待5s )

    sk.getpeername()

    返回连接套接字的远程地址。返回值通常是元组(ipaddr,port)。

    sk.getsockname()

    返回套接字自己的地址。通常是一个元组(ipaddr,port)

    sk.fileno()

    套接字的文件描述符

    展开全文
  • python的socket模块

    2019-09-28 14:17:48
    address地址的格式取决于地址族。在AF_INET下,以元组(host,port)的形式表示地址。 sk.listen(backlog)  开始监听传入连接。backlog指定在拒绝连接之前,可以挂起的最大连接数量。 backlog等于5,表示内核已经...
  • 描述: ...net.connect({ port: 60300 }) 访问服务器 服务器: ...每当监听的文件改变了,将信息通过json的格式传递给连接到的客户端 connection.write // 01、net-watcher.js 'use strict' const fs...
  • address地址的格式取决于地址族。在AF_INET下,以元组(host,port)的形式表示地址。sk.listen(backlog)开始监听传入连接。backlog指定在拒绝连接之前,可以挂起的最大连接数量。backlog等于5,表示内核已经接到了连接...
  • socket 原理

    2017-12-08 11:06:58
    socket使用创建socket类对象格式Socket mysocket = new Socket(“machineName”,1234); 第一个参数是机器名,第二个参数是... Socket(InetAddress address,int port) //指明服务器的IP地址以及端口号 Socket
  • tcl socket

    2010-12-08 23:18:00
    port-server :表明开启服务器port:端口command:当有客户端来连接时候,执行这个过程,这个过程有三个参数channel:给新客户端通道address:提供给客户端连接 ip 地址port:端口 2.客户端连接...
  • 但是c语言写服务端是很多年前,目前已经无法对服务端作任何修改,c接收报文是用char定义,报文是定长报文,不够用空格补全,格式为包头+报文长度+报文内容(1字节+4字节+300字节),包头是6,报文长度是0300,...
  • socket网络编程

    2015-07-13 16:17:00
    INET 服务器之间网络通信 socket.SOCK_STREAM 流式socket,for TCP socket.DGRAM 数据报式socket,for UDP 格式: #使用给定地址族、套接字类型、协议编号(默认为0)类创建 socket(family,type[.port]...
  • Socket相关理解

    2020-09-04 17:08:50
    Socket sk = new Socket(address,port); //2.连接上之后放到输出流中 OutputStream os = sk.getOutputStream(); // 3.将对象的格式表示打印到文本输出流 PrintWriter pw = new PrintWriter(os); //4.向服务器...
  • 本程序中当client使用TCP socket连接TCP Server成功后,client端要向TCP Server发送“GET UDP PORT”命令字符串,Server收到后再向client回送自己UDP Server 端口号(题目要求TCP Server建立连接后直接将UDP端口号...
  • Android的私钥和信任证书的格式必须是BKS格式的,通过配置本地JDK,让keytool可以生成BKS格式的私钥和信任证书,java本身没有BouncyCastle密库服务端: Java代码 publicclassSSLServer{ ...
  • System.out.println("Client ip:" + nioSocket.getIp() +" port:"+nioSocket.getPort()+ " disconnected."); nioSocket.close(); isConnected = false; } public void connectionOpened(NIO...
  • Android的私钥和信任证书的格式必须是BKS格式的,通过配置本地JDK,让keytool可以生成BKS格式的私钥和信任证书,java本身没有BouncyCastle密库  服务端:  public class SSLServer { private static ...
  • python之socket

    2016-01-18 01:16:00
    socket通常也叫做"套接字",应用程序通常通过"套接字"来向网络发出请求或者应答网络请求. socket模块是针对服务器...address地址的格式取决于地址族。在AF_INET下,以元组(host,port)的形式表示地址。 sk.listen...
  • Android的私钥和信任证书的格式必须是BKS格式的,通过配置本地JDK,让keytool可以生成BKS格式的私钥和信任证书,java本身没有BouncyCastle密库服务端: Java代码 publicclassSSLServer{ ...
  •  首先介绍 acl 中的服务器类:server_socket。该类定义了如下几个简单方法:   /** * 开始监听给定服务端地址 * @param addr {const char*} 服务器监听地址,格式为: * ip:port;在 unix 环境下,还...
  • python socket模块

    2018-12-21 13:30:58
    address地址的格式取决于地址族。在AF_INET下,以元组(host,port)的形式表示地址。 sk.listen(backlog)  开始监听传入连接。backlog指定在拒绝连接之前,可以挂起的最大连接数量。  backlog等于5,表示内核...
  • 以上传图片到服务器为例子 ...(1) 创建socket对象(AF_INET, SOCK_...(2) 与服务器进行连接connect,需要知道服务器的IP和PORT,IP地址的格式(AF_INET),同时要把IP地址和PORT从主机字节序转换为网络字节序。 sock...
  • C++Socket网络连接问题

    2015-07-29 16:47:44
    //用于接受Windows Socket 结构信息 int err; wVersionRequested = MAKEWORD(1,1); //请求1.1版本windows 库 err = WSAStartup(wVersionRequested,&wsaData); if (err !=0) { log("I'm failed at first ...
  • 学习python(3)socket

    2014-04-21 15:58:43
    #创建TCP服务器程序,把客户端发过来字符串加上时间戳 格式:【时间】数据 from socket import * from time import ctime HOST = '' #为空,表示可以绑定所有有效地址 PORT = 21567 # 随机生成未被占用...
  • $socket = new THttpClient($host, $port, $uri); $this->transport = new TBufferedTransport($socket, 1024, 1024); $protocol = new TBinaryProtocol($this->transport); $this->...
  • swf放到html里面后Socket通讯问题

    千次阅读 2014-04-09 13:06:24
    port)运行之前,会向你的socket服务器的843端口(据说Adobe已经向相关管理机构申请保留843端口给Flash Player用)发送一个字符串 “”,这个时候如果你有一个服务在监听843端口那么收到这个字符串之后,直接按照...
  • 我要做一个从天气预报的网站取得数据的小程序,要求是用socket来做,那个服务器要求的格式是这样的: POST /globalweather.asmx/GetCitiesByCountry HTTP/1.1 Host: www.webservicex.net Content-Type: ...
  • 服务器设计散记

    2016-07-07 13:06:11
    window/linux -> 网络IO模型(IOCP/epool) -> 网络协议TCP/UDP -> 消息包格式(包长|消息...关于服务器port是监听用,对指定端口进行监听,多个连接到来时系统为它们各自分配不同的socket句柄,服务器还是在

空空如也

空空如也

1 2 3 4 5 6
收藏数 119
精华内容 47
关键字:

服务器socket的port的格式