服务器

 
1.初始化
WSAStartup(..)
 
2.创建Socket
s = Socket ( .. )
 
3.绑定端口
ret = bind ( ... )
 
4.监听
ret = listen ( .. )
 
5.接收客户端的连接请求
s_new = accept ( ... )   // 三次握手发生在这个过程
 
6.收发数据
ret = recv ( .. )
// 阻塞模式, 内存不够存放发送的信息时,则阻塞send()
// 非阻塞 , 视缓冲空间大小而发送相应大的数据,不阻塞send()
 
ret = send ( .. )
 
7.关闭连接
 
 

客户端

与服务器的区别在于不需要绑定端口
1.初始化
WSAStartup(..)
 
2.创建Socket
s = Socket ( .. )
 
3.连接服务器
connect(..)
 
4.收发数据
ret = recv ( .. )
// 阻塞模式, 内存不够存放发送的信息时,则阻塞send()
// 非阻塞 , 视缓冲空间大小而发送相应大的数据,不阻塞send()
 
ret = send ( .. )
 
5.关闭连接
 
 
 

windows下TCP服务器和客户端的实现的更多相关文章

  1. Windows下SVN服务器及客户端的使用

    原文地址:windows下配置VisualSVN Server服务器 作者:Deem_passion 下载安装文件: 服务端安装文件:VisualSVN-Server-1.6.2 客户端安装文件:To ...

  2. windows下UDP服务器和客户端的实现

      UDP是面向非连接的协议,因此在实现UDP服务器时,服务器不用总是处于监听状态.可以直接收发数据.   服务器端   1.初始化 WASStartup ( ... )   2.创建Socket s ...

  3. Python 绝技 —— TCP服务器与客户端

    i春秋作家:wasrehpic 0×00 前言 「网络」一直以来都是黑客最热衷的竞技场.数据在网络中肆意传播:主机扫描.代码注入.网络嗅探.数据篡改重放.拒绝服务攻击……黑客的功底越深厚,能做的就越多 ...

  4. Windows下Git服务器搭建[转]

    Windows下Git服务器搭建   作为对前两天Git服务器搭建的一个整理,我想分别从服务端和客户端两个角度来记录下整个搭建过程,为了达到目标,我们需要哪些操作. (一)服务端软件和账号的安装配置 ...

  5. Windows下SVN服务器搭建方法整理(apache)

    http://skydream.iteye.com/blog/437959 http://www.cnblogs.com/liuke209/archive/2009/09/23/1572858.htm ...

  6. python socket之tcp服务器与客户端demo

    python socket之tcp服务器与客户端demo 作者:vpoet mails:vpoet_sir@163.com server: # -*- coding: cp936 -*- ''' 建立 ...

  7. Windows下SVN服务器的搭建步骤

    1.下载svn服务端和客户端 服务端VISUALSVN SERVER:https://www.visualsvn.com/ 客户端TortoiseSVN:https://tortoisesvn.net ...

  8. 提升linux下tcp服务器并发连接数限制

    1.修改用户进程可打开文件数限制   在Linux平台上,无论编写客户端程序还是服务端程序,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制(这是因为系统 ...

  9. Linux系统编程(32)—— socket编程之TCP服务器与客户端

    TCP协议的客户端/服务器程序的一般流程 服务器调用socket().bind().listen()完成初始化后,调用accept()阻塞等待,处于监听端口的状态,客户端调用socket()初始化后, ...

随机推荐

  1. linux_x86_64 blat安装

    blatSrc35.zip下载地址:http://users.soe.ucsc.edu/~kent/src/ 对于下载好的源代码安装包blatSrc35.zip,需进行编译,安装过程如下: 1.用un ...

  2. C++Primer 第十八章

    //1.异常:待研究 //2.命名空间: // A:多个库将名字放置在全局命名空间中将引发命名空间污染. // B:命名空间为防止名字冲突提供了更加可控的机制.命名空间分割了全局命名空间,其中每个命名 ...

  3. Leetcode: Longest Substring with At Least K Repeating Characters

    Find the length of the longest substring T of a given string (consists of lowercase letters only) su ...

  4. F面经:painting house

    There are a row of houses, each house can be painted with three colors red, blue and green. The cost ...

  5. csuoj 1337: 搞笑版费马大定理

    http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1337 1337: 搞笑版费马大定理 Time Limit: 1 Sec  Memory Limit ...

  6. have you declared this activity in your AndroidManifest.xml

    对于那些刚开始接触安卓的开发者来说,遇到这个问题再正常不过了,出现这种问题的原因大概可分为: 1.android的四大组件都必须在AndroidMainifest.xml里面声明,所以首先看看有没有在 ...

  7. fnd_profile.value('AFLOG_ENABLED')的取值 和配置文件相关SQL

    SELECT * FROM FND_PROFILE_OPTIONS_VL TT WHERE TT.PROFILE_OPTION_NAME LIKE '%AFLOG%' FND:启用调试日志 详细的参考 ...

  8. ubuntu SVN环境配置(转)

    一.SVN安装1.安装包$ sudo apt-get install subversion 2.添加svn管理用户及subversion组$ sudo adduser svnuser$ sudo ad ...

  9. js调用后台方法(如果你能容忍执行的后台方法变成一个常量)

    最近一直在做一个电话拨号的系统,系统不大,但是做的时间有点长了.其中用到了一个技术:js调用后台方法.解决这个问题花了不少时间,现如今仍然还有些不明白的地方,今天跟大家分享一下.真正明白的同学欢迎指正 ...

  10. 【转】SQL Server T-SQL高级查询

    SQL Server T-SQL高级查询 高级查询在数据库中用得是最频繁的,也是应用最广泛的. Ø 基本常用查询 --select select * from student; //查询student ...