nodejs socket实现的服务端和客户端功能示例

本文实例讲述了nodejs socket实现的服务端和客户端功能。分享给大家供大家参考,具体如下:

使用node.js的net模块能很快的开发出基于TCP的服务端和客户端。直接贴代码。

server.js

/**
 * Created with JetBrains WebStorm.
 * User: Administrator
 * Date: 12-10-26
 * Time: 下午3:44
 * To change this template use File | Settings | File Templates.
 */
var net = require('net');
var timeout = 20000;//超时
var listenPort = 7003;//监听端口
var server = net.createServer(function(socket){
  // 我们获得一个连接 - 该连接自动关联一个socket对象
  console.log('connect: ' +
    socket.remoteAddress + ':' + socket.remotePort);
  socket.setEncoding('binary');
  //超时事件
//  socket.setTimeout(timeout,function(){
//    console.log('连接超时');
//    socket.end();
//  });
  //接收到数据
  socket.on('data',function(data){
    console.log('recv:' + data);
  });
  //数据错误事件
  socket.on('error',function(exception){
    console.log('socket error:' + exception);
    socket.end();
  });
  //客户端关闭事件
  socket.on('close',function(data){
    console.log('close: ' +
      socket.remoteAddress + ' ' + socket.remotePort);
  });
}).listen(listenPort);
//服务器监听事件
server.on('listening',function(){
  console.log("server listening:" + server.address().port);
});
//服务器错误事件
server.on("error",function(exception){
  console.log("server error:" + exception);
});

client.js

/**
 * Created with JetBrains WebStorm.
 * User: Administrator
 * Date: 12-10-26
 * Time: 下午3:56
 * To change this template use File | Settings | File Templates.
 */
var net = require('net');
var port = 7003;
var host = '127.0.0.1';
var client= new net.Socket();
client.setEncoding('binary');
//连接到服务端
client.connect(port,host,function(){
  client.write('hello my client');
});
client.on('data',function(data){
  console.log('recv data:'+ data);
});
client.on('error',function(error){
  console.log('error:'+error);
  client.destory();
});
client.on('close',function(){
  console.log('Connection closed');
});

希望本文所述对大家nodejs程序设计有所帮助。

(0)

相关推荐

  • mongoDB 多重数组查询(AngularJS绑定显示 nodejs)

    核心代码: js代码 var Lesson = Schema({ lessonName: String, intr: String, creTime: Date, sort: String, //分类 imgUrl: String, //封面地址 price: Number, teacher: String,//教师 subTitle:[{ lNo: Number, subLName: String, src: String, filtered: {type: Boolean, default:

  • 详解nodeJS之路径PATH模块

    前面的话 path模块包含一系列处理和转换文件路径的工具集,通过 require('path') 可用来访问这个模块.本文将详细介绍path模块 路径组成 [path.dirname(p)] 返回路径p所在的目录 var path = require('path'); console.log(path.dirname('/foo/bar/baz/asdf/a.txt')); // /foo/bar/baz/asdf console.log(path.dirname('/foo/bar/baz/a

  • 详解Nodejs之静态资源处理

    前言 刚开始用Nodejs写简单的web服务器的时候,总是感觉少了点什么. 原来,我一直是在页面上输出什么Hello World!啊, It Works.之类的了.还确实没有处理关于CSS, JS这些引用的静态相关的资源. 一开始觉得处理这些东西应该会非常的easy,结果发现不仅仅是这么回事.途中也遇到了一些人们经常可能会犯的想当然的错误.于是我就决定好好的记录一下关于Nodejs中对于静态资源的处理. 着眼于问题 重现问题 先来展示一下目录结构吧. E:\CODE\NODEJS\LEARN\W

  • 深入理解Nodejs Global 模块

    浏览器上有自己的全局对象 window,同理, nodejs 下也有自己的全局对象 global,并且在各个模块下 都可以直接访问 global 对象. 在 nodejs 中,除了可以直接使用 V8 JavaScript 引擎中所支持的原生 JavaScript 的函数和对象外,它还追加了一些其他的函数和对象(比如:Buffer 对象.require 函数等). Buffer 对象: 用于处理二进制数据 module 对象: 用于访问当前模块的信息 process 对象: 用于访问进程信息 co

  • Nodejs回调加超时限制两种实现方法

    Nodejs回调加超时限制两种实现方法 Nodejs下的IO操作都是异步的,有时候异步请求返回太慢,不想无限等待回调怎么办呢?我们可以给回调函数加一个超时限制,到一定时间还没有回调就表示失败,继续后面的步骤. 方案1:用async的parallel实现 在这里我用到了async的parallel方法,parallel可以让若干个异步回调的方法并行执行,正常情况下,所有回调函数都完成后会汇集到parallel最终的回调函数里,但是有一种例外,如果其中一个步骤有错误抛出并直接调用parallel最终

  • 详解nodeJS之二进制buffer对象

    前面的话 在ES6引入TypedArray之前,JavaScript语言没有读取或操作二进制数据流的机制.Buffer类被引入作为Nodejs的API的一部分,使其可以在TCP流和文件系统操作等场景中处理二进制数据流.现在TypedArray已经被添加进ES6中,Buffer类以一种更优与更适合Node.js用例的方式实现了Uint8Array.本文将详细介绍buffer对象 概述 由于应用场景不同,在Node中,应用需要处理网络协议.操作数据库.处理图片.接收上传文件等,在网络流和文件的操作中

  • nodejs socket实现的服务端和客户端功能示例

    本文实例讲述了nodejs socket实现的服务端和客户端功能.分享给大家供大家参考,具体如下: 使用node.js的net模块能很快的开发出基于TCP的服务端和客户端.直接贴代码. server.js /** * Created with JetBrains WebStorm. * User: Administrator * Date: 12-10-26 * Time: 下午3:44 * To change this template use File | Settings | File T

  • PHP编程实现的TCP服务端和客户端功能示例

    本文实例讲述了PHP编程实现的TCP服务端和客户端功能.分享给大家供大家参考,具体如下: 1.修改php.ini,打开extension=php_sockets.dll 2.服务端程序SocketServer.php <?php //确保在连接客户端时不会超时 set_time_limit(0); //设置IP和端口号 $address = "127.0.0.1"; $port = 3046; /** * 创建一个SOCKET * AF_INET=是ipv4 如果用ipv6,则参

  • Java实现断点下载服务端与客户端的示例代码

    目录 原理 扩展-大文件快速下载思路 代码 服务端 客户端 最近在研究断点下载(下载续传)的功能,此功能需要服务端和客户端进行对接编写,本篇也是记录一下关于贴上关于实现服务端(Spring Boot)与客户端(Android)是如何实现下载续传功能 断点下载功能(下载续传)解释: 客户端由于突然性网络中断等原因,导致的下载失败,这个时候重新下载,可以继续从上次的地方进行下载,而不是重新下载 原理 首先,我们先说明了断点续传的功能,实际上的原理比较简单 客户端和服务端规定好一个规则,客户端传递一个

  • Python socket如何实现服务端和客户端数据传输(TCP)

    目录 socket服务端和客户端数据传输(TCP) socket服务端,客户端互相通信 socket服务端和客户端数据传输(TCP) 服务器端: import socket #创建一个socket对象 socket_server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) host = "127.0.0.1" port = 9999 #绑定地址 socket_server.bind((host, port)) #设置监听 so

  • nodejs socket服务端和客户端简单通信功能

    本文实例讲述了通过node.js的net模块实现nodejs socket服务端和客户端简单通信功能,可以用作客户端对服务端的端口监听以及事件回执. server端代码 var net = require('net'); //模块引入 var listenPort = 8080;//监听端口 var server = net.createServer(function(socket){ // 创建socket服务端 console.log('connect: ' + socket.remoteA

  • Nodejs之TCP服务端与客户端聊天程序详解

    TCP是用来计算机之间进行通信的,通过编写客户端和服务端聊天的代码,对于服务器与客户端的工作步骤有了深刻的了解,在这里根据了不起的Node.js一书来总结一下. TCP聊天程序需要用到Nodejs中的net模块,net模块是对TCP的封装,用于创建TCP服务端与客户端的. 服务器端 count:连接的客户端个数: users:用于存储客户端用户昵称的对象,对象值都为该客户端的Socket,Socket是一个接口,用于服务端与客户端通信. net.createServer:是用来创建TCP服务器,

  • 使用socket进行服务端与客户端传文件的方法

    逻辑: 1.客户端将需要查找的文件名以流的形式传给服务端 2.服务端接受客户端的连接,把流转化为字符串,进行一个目录的遍历,查找是否存在需要的文件,若未找到,则输出未找到,若找到,则将文件转化为流,传给客户端 3.客户端准备接受,将服务端传过来的流转化为文件,存储下载. 4,至此,完成一个简单的客户端与服务端传输文件的小栗子~ Client.Java package com.ysk; import java.io.BufferedReader; import java.io.FileOutput

  • python网络编程socket实现服务端、客户端操作详解

    本文实例讲述了python网络编程socket实现服务端.客户端操作.分享给大家供大家参考,具体如下: 本文内容: socket介绍 TCP: 服务端 客户端 UDP: 服务端 客户端 首发时间:2018-02-08 01:14 修改: 2018-03-20 :重置了布局,增加了UDP 什么是socket: socket又称"套接字",应用程序通常通过"套接字"向网络发出请求或者应答网络请求. 网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为

  • golang实现简单的udp协议服务端与客户端示例

    本文实例讲述了golang实现简单的udp协议服务端与客户端.分享给大家供大家参考,具体如下: 其实udp没有什么服务端和客户端的概念了,只是一个发一个收而已,只是这样较方便能识别和理解. 服务端: 复制代码 代码如下: package main import (     "fmt"     "net" ) func main() {     // 创建监听     socket, err := net.ListenUDP("udp4", &am

  • 详解基于java的Socket聊天程序——服务端(附demo)

    写在前面: 昨天在博客记录自己抽空写的一个Socket聊天程序的初始设计,那是这个程序的整体设计,为了完整性,今天把服务端的设计细化记录一下,首页贴出Socket聊天程序的服务端大体设计图,如下图: 功能说明: 服务端主要有两个操作,一是阻塞接收客户端的socket并做响应处理,二是检测客户端的心跳,如果客户端一段时间内没有发送心跳则移除该客户端,由Server创建ServerSocket,然后启动两个线程池去处理这两件事(newFixedThreadPool,newScheduledThrea

随机推荐