文档章节

socket初尝试

丶溺爱
 丶溺爱
发布于 2017/05/31 14:36
字数 155
阅读 1
收藏 0
点赞 0
评论 0

套接字是网络接口的不二选择。学习网络编程,就一定会用到套接字。

服务器端

server.cpp

int main(int argc,char **argv)
{
        if(argc!=2)
        {
        printf("please enter port!");
        return 1;
        }

        int sockfd,clifd;
        struct sockaddr_in servaddr,cliaddr;
        int port =atoi(argv[1]);
        printf("port:%d \n",port);

        servaddr.sin_family=AF_INET;
        servaddr.sin_port=htons(port);
        servaddr.sin_addr.s_addr=htonl(INADDR_ANY);

        sockfd=socket(AF_INET,SOCK_STREAM,0);
        if(sockfd<0)
        {
        printf("socket error!\n");
        return 1;
        }

        int ret =bind(sockfd,(struct sockaddr*)&servaddr,sizeof(servaddr));
        if(ret<0)
        {
        printf("bind error!\n");
        return 1;
        }

        ret =listen(sockfd,10);
        if(ret<0)
        {
        printf("listen error!\n");
        return 1;
        }
        
        printf("wait a client to connect ....");

        while(1)
        {
        socklen_t len =sizeof(cliaddr);
        clifd = accept(sockfd,(struct sockaddr*)&cliaddr,&len);

        }
        return 0;


}

 

© 著作权归作者所有

共有 人打赏支持
丶溺爱
粉丝 0
博文 4
码字总数 478
作品 0
温州
程序员
使用线程池,一段时间后,发现有些线程假死

上一个问题:http://www.oschina.net/question/224858119159 可能是判断有误,南辕北辙了,所以没有找到合适的方法,直到现在还没有解决. 很可能是我在线程池上处理的不得当,使用的是Threa...

布谷鸟 ⋅ 2013/07/26 ⋅ 10

LibreOffice将发展Web、iOS和Android版本

The Document Foundation今天宣布将尝试在Web浏览器和iOS、Android移动设备上运行这一办公软件,预计这些产品将在2012年年底到2013年初正式发布。 这意味着面向Web和移动设备的Google Docs和...

xiangxw ⋅ 2011/10/15 ⋅ 10

[Unity3D]多人聊天系统

又再一次修改unity web聊天的功能,之前的两次尝试都觉得服务器端性能太差了,写的还不够成熟,在龙哥的指导下,尝试使用IOCP重新写服务器端,使用线程池大大提高了socket处理性能,相比较之...

蓬莱仙羽 ⋅ 2014/03/03 ⋅ 0

从操作系统内核看Java非阻塞IO事件检测

非阻塞服务器模型最重要的一个特点是,在调用读取或写入接口后立即返回,而不会进入阻塞状态。在探讨单线程非阻塞IO模型前必须要先了解非阻塞情况下Socket事件的检测机制,因为对于非阻塞模式...

wangyangzhizhou ⋅ 2016/09/18 ⋅ 0

JAVA Socket使用线程池,发现大量TIME_WAIT

最近几天搞了搞socket,于是结合线程池做远程会话,初启动速度蛮快,然后越来越慢,于是netstat -a蛋疼的发现大量的TIME_WAIT的线程,百度google之,貌似在socket.close()之后,底层的tcp仍然...

布谷鸟 ⋅ 2013/07/21 ⋅ 11

Java网络学习笔记3:设置Socket选项(补充)

接上一篇博文,在小小添加几个Socket选项, 4.SOLINGER选项: //设置该选项:public void setSoLinger(boolean on,int seconds) throws SocketException // 注意第二个参数以秒为单位,并非毫...

牧羊人Berg ⋅ 2015/11/19 ⋅ 0

Thrift第四课 连接中断异常处理

场景 Thrift框架采用了异常处理机制,当客户端异常断开连接,服务端这个时候尝试发送数据给客户端,Thrift库会抛出异常,导致进程中断。这种情况是非常正常的,服务器端应该捕获异常的发生,...

fengyuzaitu ⋅ 02/17 ⋅ 0

Android系统socket通信时需要进行平板电脑设置么?

目前我是在平板电脑上进行测试,想做一个最简单的socket通信。客户端在平板电脑上,android的。服务器端在PC上。代码如下。我尝试了用相似两个java程序进行pc与pc之间的socket通信是没有问题...

秋暮严冬 ⋅ 2012/06/20 ⋅ 5

socket实现用户登陆 && socket实现图片上传

需求: 通过客户端键盘录入用户名,实现登录。 服务端对客户端的发送过来的用户名进行校验。 如果该用户存在,服务端显示用户登录,并回馈给客户端欢迎光临。 如果该用户不存在,服务端显示用...

xiahuawuyu ⋅ 2012/09/30 ⋅ 0

webgui模式探讨

在linux下很想前端GUI用web开发,后端用C直接开发,也就是web中通过javascript调用,用C编的方法.这样做开发就不用为GUI发愁了. 1,尝试过gecko gtkembedding + websockets方式,即javascript用s...

jlmpp ⋅ 2010/11/05 ⋅ 2

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Springboot2 之 Spring Data Redis 实现消息队列——发布/订阅模式

一般来说,消息队列有两种场景,一种是发布者订阅者模式,一种是生产者消费者模式,这里利用redis消息“发布/订阅”来简单实现订阅者模式。 实现之前先过过 redis 发布订阅的一些基础概念和操...

Simonton ⋅ 33分钟前 ⋅ 0

error:Could not find gradle

一.更新Android Studio后打开Project,报如下错误: Error: Could not find com.android.tools.build:gradle:2.2.1. Searched in the following locations: file:/D:/software/android/andro......

Yao--靠自己 ⋅ 昨天 ⋅ 0

Spring boot 项目打包及引入本地jar包

Spring Boot 项目打包以及引入本地Jar包 [TOC] 上篇文章提到 Maven 项目添加本地jar包的三种方式 ,本篇文章记录下在实际项目中的应用。 spring boot 打包方式 我们知道,传统应用可以将程序...

Os_yxguang ⋅ 昨天 ⋅ 0

常见数据结构(二)-树(二叉树,红黑树,B树)

本文介绍数据结构中几种常见的树:二分查找树,2-3树,红黑树,B树 写在前面 本文所有图片均截图自coursera上普林斯顿的课程《Algorithms, Part I》中的Slides 相关命题的证明可参考《算法(第...

浮躁的码农 ⋅ 昨天 ⋅ 0

android -------- 混淆打包报错 (warning - InnerClass ...)

最近做Android混淆打包遇到一些问题,Android Sdutio 3.1 版本打包的 错误如下: Android studio warning - InnerClass annotations are missing corresponding EnclosingMember annotation......

切切歆语 ⋅ 昨天 ⋅ 0

eclipse酷炫大法之设置主题、皮肤

eclipse酷炫大法 目前两款不错的eclipse 1.系统设置 Window->Preferences->General->Appearance 2.Eclipse Marketplace下载【推荐】 Help->Eclipse Marketplace->搜索‘theme’进行安装 比如......

anlve ⋅ 昨天 ⋅ 0

vim编辑模式、vim命令模式、vim实践

vim编辑模式 编辑模式用来输入或修改文本内容,编辑模式除了Esc外其他键几乎都是输入 如何进入编辑模式 一般模式输入以下按键,均可进入编辑模式,左下角提示 insert(中文为插入) 字样 i ...

蛋黄Yolks ⋅ 昨天 ⋅ 0

大数据入门基础:SSH介绍

什么是ssh 简单说,SSH是一种网络协议,用于计算机之间的加密登录。 如果一个用户从本地计算机,使用SSH协议登录另一台远程计算机,我们就可以认为,这种登录是安全的,即使被中途截获,密码...

董黎明 ⋅ 昨天 ⋅ 0

web3j教程

web3j是一个轻量级、高度模块化、响应式、类型安全的Java和Android类库提供丰富API,用于处理以太坊智能合约及与以太坊网络上的客户端(节点)进行集成。 汇智网最新发布的web3j教程,详细讲解...

汇智网教程 ⋅ 昨天 ⋅ 0

谷歌:安全问题机制并不如你想象中安全

腾讯科技讯 5月25日,如今的你或许已经对许多网站所使用的“安全问题机制”习以为常了,但你真的认为包括“你第一个宠物的名字是什么?”这些问题能够保障你的帐户安全吗? 根据谷歌(微博)安...

问题终结者 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部