导航:首页 > IDC知识 > 建立socket服务器

建立socket服务器

发布时间:2020-12-23 07:01:10

1、python怎么建立socket服务端

1
首先先建立一个python文件,命名为 socket_server1.py

2
下面是相关的步骤图.

3
先导入相关的模块.并且定义相关的主机及端口.

4
完整的socket_server1.py文件.

5
设置好之后,通过命令提示符测试(进行测试.开始-----运行-----cmd)

6
先使用python 运行下刚刚的那个文件. >>python socket_server1.py

7
客户端直接使用telnet代替测试一下.>>telnet 127.0.0.1 10086

8
然后在服务端的窗口上面会出现相关的客户端信息,在客户端的窗口上面,输入一个字符,服务器端会显示出来,并且客户端上面会返回一个大写的字符。

9
这个就是一个简单的 python的socket的服务器端了。只是测试,没有排错日志

2、Socket编程如何搭建一个外网可以访问的服务器

搭建外网访问,首先你要有一台外网可访问的服务器,有以下几种方法可以实现。
一、购买外网服务器。由于服务器端使用JAVA语言开发,所以外网服务器操作系统可以是Linux或Windows,这个需要你花钱购买。如果只是测试,你可以选择购买阿里云的云服务器,非常便宜。
二、还有一种方法就是你通过花生壳之类的软件进行映射你的网络,但花生壳对长城宽带之类的网络支持不是特别好,如果需要很好的支持,那也需要花钱购买。
三、如果你是通过路由器上网,并且可以操作路由器权限且使用的是电信或者是联通的网络,那可以直接在路由器里面做端口映射,这个你可以百度一下,有很多文章讲的非常清楚,这里篇幅限制,就不贴了。
四、如果你是直接通过猫上网且使用电信或联通宽带,那可以直接使用本机外网IP访问你的程序。
以上四种方法中,最稳定的还是购买外网服务器,其它都会有各种问题,你可以选择其中适合你的一种方法。希望能帮助到你

3、我想问下如何在手机上建立一个服务器,用Socket的方法如何实现。

TCP方式:
TCP协议客户端实现:

//创建一个Socket对象,指定服务器端的IP地址和端口号
Socketsocket=newSocket("192.168.1.104",4567);
//使用InputStream读取硬盘上的文件,这里只是用文件当做信息源,可以读取控件用户输入信息
InputStreaminputStream=new
FileInputStream("f://file/words.txt");

//从Socket当中得到OutputStream

OutputStream outputStream=socket.getOutputStream();
bytebuffer[]=newbyte[4*1024];inttemp=0;

//将InputStream当中的数据取出,并写入到OutputStream当中
while((temp=inputStream.read(buffer))!=-1)

5
{
outputStream.write(buffer,0,temp);}
outputStream.flush();}

TCP协议服务器端实现:

//声明一个ServerSocket对象
ServerSocketserverSocket=null;
try{

//创建一个ServerSocket对象,并让这个Socket在4567端口监听

serverSocket=newServerSocket(4567);

//调用ServerSocket的accept()方法,接受客户端所发送的请求,
//如果客户端没有发送数据,那么该线程就停滞不继续

Socketsocket=serverSocket.accept();
//从Socket当中得到InputStream对象

InputStreaminputStream=socket.getInputStream();
bytebuffer[]=newbyte[1024*4];
inttemp=0;

//从InputStream当中读取客户端所发送的数据
while((temp=inputStream.read(buffer))!=-1)
{
System.out.println(newString(buffer,0,temp));}
}
catch(IOExceptione)
{

e.printStackTrace();}

serverSocket.close();
}

UDP方式
UDP的客户端代码实现如下:

public static void main(String[]args)
{
try{

//首先创建一个DatagramSocket对象

DatagramSocket socket=new DatagramSocket(4567);
//创建一个InetAddree

6

InetAddress serverAddress=InetAddress.getByName("192.168.1.104");

String str="hello";

//这是要传输的数据

byte data[]=str.getBytes();

//把传输内容分解成字节

//创建一个DatagramPacket对象,并指定要讲这个数据包发送到网
络当中的哪个地址,以及端口号

DatagramPacket packet=new
DatagramPacket(data,data.length,serverAddress,4567);
//调用socket对象的send方法,发送数据
socket.send(packet);}
catch(Exceptione)
{

e.printStackTrace();}
}

UDP的服务端代码实现如下:

//创建一个DatagramSocket对象,并指定监听的端口号

DatagramSocket socket=new DatagramSocket(4567);
bytedata[]=newbyte[1024];
//创建一个空的DatagramPacket对象

DatagramPacket packet=new DatagramPacket(data,data.length);
//使用receive方法接收客户端所发送的数据,
//如果客户端没有发送数据,该进程就停滞在这里

socket.receive(packet);

Stringresult=newString(packet.getData(),packet.getOffset(),
packet.getLength());

System.out.println("result--->"+result);

4、如何在客户端上建立一个Socket与服务器端连接,包括连接的函数?

ClientSocket组件为客户端组件。它是通信的请求方,也就是说,它是主动地与服务器端建立连接。
ServerSocket组件为服务器端组件。它是通信的响应方,也就是说,它的动作是监听以及被动接受客户端的连接请求,并对请求进行回复。
ServerSocket组件可以同时接受一个或多个ClientSocket组件的连接请求,并与每个ClientSocket组件建立单独的连接,进行单独的通信。因此,一个服务器端可以为多个客户端服务。
设计思路
本例包括一个服务器端程序和一个客户端程序。客户端程序可以放到多个计算机上运行,同时与服务器端进行连接通信。
本例的重点,一是演示客户端与服务器端如何通信;二是当有多个客户端同时连接到服务器端时,服务器端如何识别每个客户端,并对请求给出相应的回复。为了保证一个客户端断开连接时不影响其它客户端与服务器端的通信,同时保证服务器端能够正确回复客户端的请求,在本例中声明了一个记录类型:
type
client_record=record
CHandle: integer; //客户端套接字句柄
CSocket:TCustomWinSocket; //客户端套接字
CName:string; //客户端计算机名称
CAddress:string; //客户端计算机IP地址
CUsed: boolean; //客户端联机标志
end;
利用这个记录类型数据保存客户端的信息,同时保存当前客户端的连接状态。其中,CHandle保存客户端套接字句柄,以便准确定位每个与服务器端保持连接的客户端;Csocket保存客户端套接字,通过它可以对客户端进行回复。Cused记录当前客户端是否与服务器端保持连接。
下面对组件ServerSocket和ClientSocket的属性设置简单说明。
ServerSocket的属性:
· Port,是通信的端口,必须设置。在本例中设置为1025;
· ServerTypt,服务器端读写信息类型,设置为stNonBlocking表示异步读写信息,本例中采用这种方式。
· ThreadCacheSize,客户端的最大连接数,就是服务器端最多允许多少客户端同时连接。本例采用默认值10。
其它属性采用默认设置即可。
ClientSocket的属性:
· Port,是通信的端口,必须与服务器端的设置相同。在本例中设置为1025;
· ClientType,客户端读写信息类型,应该与服务器端的设置相同,为stNonBlocking表示异步读写信息。
· Host,客户端要连接的服务器的IP地址。必须设置,当然也可以在代码中动态设置。
其它属性采用默认设置即可。

5、如何搭建 websocket服务器

其实,在服务器的选择上很广,基本上,主流语言都有WebSocket的服务器端实现,而我们作为前端开发工程师,当然要选择现在比较火热的NodeJS作为我们的服务器端环境了。
NodeJS本身并没有原生的WebSocket支持,但是有第三方的实现(大家要是有兴趣的话,完全可以参考WebSocket协议来做自己的实现),我们选择了“ws”作为我们的服务器端实现。
由于本文的重点是讲解WebSocket,所以,对于NodeJS不做过多的介绍,不太熟悉的朋友可以去参考NodeJS入门指南(http://www.nodebeginner.org/index-zh-cn.html)。
安装好NodeJS之后,我们需要安装“ws”,也就是我们的WebSocket实现,安装方法很简单,在终端或者命令行中输入:
npm install ws
,等待安装完成就可以了。
接下来,我们需要启动我们的WebSocket服务。首先,我们需要构建自己的HTTP服务器,在NodeJS中构建一个简单的HTTP服务器很简单,so easy。代码如下:
var app = http.createServer(onRequest ).listen( 8888 );
onRequest()作为回调函数,它的作用是处理请求,然后做出响应,实际上就是根据接收的URL,在服务器上查找相应的资源,最终返回给浏览器。
在构建了HTTP服务器后,我们需要启动WebSocket服务,代码如下:
var WebSocketServer = require('ws').Server;
var wss = new WebSocketServer( { server : app } );
从代码中可以看出,在初始化WebSocket服务时,把我们刚才构建好的HTTP实例传递进去就好。到这里,我们的服务端代码差不多也就编写完成了。怎么样?很简单吧。
望采纳!

6、python怎样建立socket服务器

下面的例子是多线程实现的socket服务器:

import socketimport threadingclass ThreadedServer(object):
def __init__(self, host, port):
self.host = host
self.port = port
self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
self.sock.bind((self.host, self.port))

def listen(self):
self.sock.listen(5)
while True:
client, address = self.sock.accept()
client.settimeout(60)
threading.Thread(target = self.listenToClient,args = (client,address)).start()

def listenToClient(self, client, address):
size = 1024
while True:
try:
data = client.recv(size)
if data:
# Set the response to echo back the recieved data
response = data
client.send(response)
else:
raise error('Client disconnected')
except:
client.close()
return Falseif __name__ == "__main__":
while True:
port_num = input("Port? ")
try:
port_num = int(port_num)
break
except ValueError:
pass

ThreadedServer('',port_num).listen()

7、如何搭建websocket服务器

在服务器的选择上很广,基本上,主流语言都有WebSocket的服务器端实现,而我们作为前端开发工程师,当然要选择现在比较火热的NodeJS作为我们的服务器端环境了。
NodeJS本身并没有原生的WebSocket支持,但是有第三方的实现(大家要是有兴趣的话,完全可以参考WebSocket协议来做自己的实现),我们选择了“ws”作为我们的服务器端实现。
由于本文的重点是讲解WebSocket,所以,对于NodeJS不做过多的介绍,不太熟悉的朋友可以去参考NodeJS入门指南(http://www.nodebeginner.org/index-zh-cn.html)。
安装好NodeJS之后,我们需要安装“ws”,也就是我们的WebSocket实现,安装方法很简单,在终端或者命令行中输入:
npm install ws
,等待安装完成就可以了。
接下来,我们需要启动我们的WebSocket服务。首先,我们需要构建自己的HTTP服务器,在NodeJS中构建一个简单的HTTP服务器很简单,so easy。代码如下:
var app = http.createServer(onRequest ).listen( 8888 );
onRequest()作为回调函数,它的作用是处理请求,然后做出响应,实际上就是根据接收的URL,在服务器上查找相应的资源,最终返回给浏览器。
在构建了HTTP服务器后,我们需要启动WebSocket服务,代码如下:
var WebSocketServer = require('ws').Server;
var wss = new WebSocketServer( { server : app } );
从代码中可以看出,在初始化WebSocket服务时,把我们刚才构建好的HTTP实例传递进去就好。到这里,我们的服务端代码差不多也就编写完成了。

8、编写代码,使用java ServerSocket创建服务器端ServerSocket的过程。

服务器端代码:

import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class Server {

    public void server(){
        try {
            ServerSocket serverSocket = new ServerSocket(8888); //建立服务器端的套接字,并监听8888端口

            Socket socket = serverSocket.accept(); //如果有请求到达,则接受请求,并建立一个新的套接字
            InputStream is = socket.getInputStream(); //获取此套接字上的输入流,用于接收消息

            //接下来就是获取套接字里的字节流,并转化为字符串
            byte[] bytes = new byte[1024];
            int count;
            StringBuilder sb = new StringBuilder();
            while((count = is.read(bytes)) != -1){
                sb.append(new String(bytes, 0, count));
            }

            is.close();
            System.out.println(sb.toString());

        } catch (IOException e) {
            e.printStackTrace();
        }

    }

    public static void main(String[] args) {
        Server s = new Server();
        s.server();
    }

}

另附客户端:

import java.io.IOException;
import java.io.OutputStream;
import java.net.InetSocketAddress;
import java.net.Socket;

public class Client {
    public void client(){
        try {
            Socket socket = new Socket(); //建立套接字
            socket.connect(new InetSocketAddress("127.0.0.1", 8888)); //连接到指定IP地址的主机,并指定端口号接收消息

            OutputStream os = socket.getOutputStream(); //获取此连接上的输出流,用于发送数据
            os.write(new String("Hello, world!").getBytes()); //将字符串转化为字节数组写入输出流
            os.flush();//刷新此输出流,将字节流写入它们预期的目标
            os.close(); //关闭连接,否则会报连接重置异常
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        Client c = new Client();
        c.client();
    }
}

9、python怎么建立socket服务端

python是一款应用非常广泛的脚本程序语言,谷歌公司的网页就是用编写。python在生物信息、统计、网页制作、计算等多个领域都体现出了强大的功能。python和其他脚本语言如java、R、Perl 一样,都可以直接在命令行里运行脚本程序。工具/原料
python;CMD命令行;windows操作系统
方法/步骤
1、首先下载安装python,建议安装2.7版本以上,3.0版本以下,由于3.0版本以上不向下兼容,体验较差。

2、打开文本编辑器,推荐editplus,notepad等,将文件保存成 .py格式,editplus和notepad支持识别python语法。
脚本第一行一定要写上 #!usr/bin/python
表示该脚本文件是可执行python脚本
如果python目录不在usr/bin目录下,则替换成当前python执行程序的目录。
3、编写完脚本之后注意调试、可以直接用editplus调试。调试方法可自行百度。脚本写完之后,打开CMD命令行,前提是python 已经被加入到环境变量中,如果没有加入到环境变量,请百度

4、在CMD命令行中,输入 “python” + “空格”,即 ”python “;将已经写好的脚本文件拖拽到当前光标位置,然后敲回车运行即可。

10、如何采用java采socket建立一个服务器

try {
    // socket v5
    // 4byte(5 2 0 2) @see java.net.SocksSocketImpl
    int len = dis.read(buffer);
    // reply client
    dos.write(new byte[]{Config.PROTO_VERS, Config.NO_AUTH});
    dos.flush();
     
    // read
    // PROTO_VERS(1byte)
    // CONNECT(1byte)
    // 0(1byte)
    // DOMAIN_NAME/IPV4/IPV6(1byte)   DOMAIN_NAME(not consider now)
    // addr(IPV4:4byte/IPV6:16byte)
    // port>>8&0xff(1byte)
    // port&0xff(1byte)
    len = dis.read(buffer);
    byte addrType = buffer[3];
    byte[] applyData = null;
     
    String serverIp = null;
    int serverPort = 0;
    if (addrType == Config.IPV4) {
        serverIp = Util.bytes2ipv4(buffer, 4, 4);
        serverPort = buffer[8] << 8 | buffer[9];
        // set reply data
        applyData = new byte[10];
        applyData[1] = Config.REQUEST_OK;
        applyData[3] = Config.IPV4;
        for (int i = 4; i < 10; i++) {
            // fill ip, port
            applyData[i] = buffer[i];
        }
    } else if (addrType == Config.IPV6) {
        serverIp = Util.bytes2ipv6(buffer, 4, 16);
        serverPort = buffer[20] << 8 | buffer[21];
        // set reply data
        applyData = new byte[6];
        applyData[1] = Config.REQUEST_OK;
        applyData[3] = Config.IPV6;
        applyData[4] = buffer[20];
        applyData[5] = buffer[21];
    }
    // reply
    dos.write(applyData);
    dos.flush();
     
    // connect the server
    // serverIp是服务器ip,serverPort是服务器端口,用这两个
    // 创建与服务器的socket连接
    Socket socket = new Socket(serverIp, serverPort);
    // 之后处理客户端与服务器的数据交互就用这个socket转发就行了
     
    // finally success!!!
} catch (Exception e) {
    e.printStackTrace();
}

与建立socket服务器相关的知识