#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <sys/socket.h>
#include <netinet/in.h>
int main()
{
int sc = ;
int ret = ;
int fd = ;
unsigned char data[] = {};
sc = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if(sc < ){
perror("socket");
return ;
}
struct sockaddr_in gg;
gg.sin_family = AF_INET;
gg.sin_port = htons();
gg.sin_addr.s_addr = inet_addr("192.168.31.238"); //这里写上自己的IP,因为访问者肯定要写主机的IP对吧。 ret = bind(sc, (struct sockaddr *)&gg, );
if(ret < ){
perror("bind");
return ;
} ret = listen(sc, );
if(ret < ){
perror("listen");
return ;
} struct sockaddr_in nfd;
int nfd_len = ;
fd = accept(sc, (struct sockaddr *)&nfd, &nfd_len);
if(ret < ){
perror("accept");
return ;
} ret = recv(fd, data, , );
if(ret < ){
perror("recv");
return ;
} printf("client say : %s\n", data);
close(sc);
close(nfd);
}
   #include <stdio.h>
#include <stdlib.h>
#include <sys/socket.h>
#include <string.h>
#include <netinet/in.h> int main()
{
int ret = ;
int fd = ;
int sc = ;
unsigned char data[] = {};
unsigned char arr[] = {};
sc = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if(sc < ){
perror("socket");
return ;
} struct sockaddr_in mm;
mm.sin_family = AF_INET;
mm.sin_port = htons();
mm.sin_addr.s_addr = inet_addr("192.168.31.154");; ret = connect(sc, (struct sockaddr *)&mm, );
if(ret < ){
perror("connect");
return ;
}
struct sockaddr_in gg;
gg.sin_family = AF_INET;
gg.sin_port = htons();
gg.sin_addr.s_addr = inet_addr("192.168.31.238");; ret = bind(sc, (struct sockaddr *)&gg, );
if(ret < ){
perror("bind");
return ;
} ret = listen(sc, );
if(ret < ){
perror("listen");
return ;
} struct sockaddr_in nfd;
int nfd_len = ;
fd = accept(sc, (struct sockaddr *)&nfd, &nfd_len);
if(ret < ){
perror("accept");
return ;
}
while(){
read(, data, ); ret = send(sc, data, , );
if(ret < ){
perror("send");
return ;
}
ret = recv(fd, arr, , );
if(ret < ){
perror("recv");
return ;
} printf("client say : %s\n", arr); } close(sc); }

client|server 最简单的聊天的更多相关文章

  1. Android简单的聊天室开发(client与server沟通)

    请尊重他人的劳动成果.转载请注明出处:Android开发之简单的聊天室(client与server进行通信) 1. 预备知识:Tcp/IP协议与Socket TCP/IP 是Transmission ...

  2. NetMQ(ZeroMQ)Client => Server => Client 模式的实现

    ØMQ (也拼写作ZeroMQ,0MQ或ZMQ)是一个为可伸缩的分布式或并发应用程序设计的高性能异步消息库.它提供一个消息队列, 但是与面向消息的中间件不同,ZeroMQ的运行不需要专门的消息代理(m ...

  3. ASP.NET Signalr 2.0 实现一个简单的聊天室

    学习了一下SignalR 2.0,http://www.asp.net/signalr 文章写的很详细,如果头疼英文,还可以机翻成中文,虽然不是很准确,大概还是容易看明白. 理论要结合实践,自己动手做 ...

  4. SignalR循序渐进(一)简单的聊天程序

    前阵子把玩了一下SignalR,起初以为只是个real-time的web通讯组件.研究了几天后发现,这玩意简直屌炸天,它完全就是个.net的双向异步通讯框架,用它能做很多不可思议的东西.它基于Owin ...

  5. socket实例C语言:一个简单的聊天程序

    我们老师让写一个简单的聊天软件,并且实现不同机子之间的通信,我用的是SOCKET编程.不废话多说了,先附上代码: 服务器端server.c #include <stdio.h> #incl ...

  6. 通过python 构建一个简单的聊天服务器

    构建一个 Python 聊天服务器 一个简单的聊天服务器 现在您已经了解了 Python 中基本的网络 API:接下来可以在一个简单的应用程序中应用这些知识了.在本节中,将构建一个简单的聊天服务器.使 ...

  7. 深入浅出 Redis client/server交互流程

    综述 最近笔者阅读并研究redis源码,在redis客户端与服务器端交互这个内容点上,需要参考网上一些文章,但是遗憾的是发现大部分文章都断断续续的非系统性的,不能给读者此交互流程的整体把握.所以这里我 ...

  8. 简单的聊天室代码php+swoole

    php swoole+websocket 客户端代码 <!DOCTYPE html> <html> <head> <title></title&g ...

  9. C#编写简单的聊天程序

    这是一篇基于Socket进行网络编程的入门文章,我对于网络编程的学习并不够深入,这篇文章是对于自己知识的一个巩固,同时希望能为初学的朋友提供一点参考.文章大体分为四个部分:程序的分析与设计.C#网络编 ...

随机推荐

  1. JS判断终端浏览器类型

    根据终端浏览器类型不懂加载不同的JS或CSS文件 <script> var browser = { versions: function () { var u = navigator.us ...

  2. js实现超过长度的字符截取指定长度(中文字符算2个字符),超出部分以...显示

    //超过长度的字符截取指定长度,超出部分以...显示 function subString(str, len) { var newLength = 0; var newStr = "&quo ...

  3. .NET自动更新

    asp.net b/s就是布置在服务器的.你这个是要单机版的更新机制,博客园里面好几篇文章说这事呢. http://www.cnblogs.com/cnsharp/archive/2013/04/11 ...

  4. 安装ConEmu

    ConEmu可以提供比Windows自带控制台(cmd.exe)程序更多的功能,从其官网下载安装程序时选择预览版安装包(Preview, Installer)即可.

  5. 如何在linux中设置tab键长度

    1. 创建文件名为 .vimrc 的系统文件 首先切换到用户根目录,然后创建文件. $ cd ~ $ vim .vimrc 2. 在文件中输入下面的内容并保存 set tabstop=4 set sh ...

  6. windows批处理(.bat)

    转自http://www.cnblogs.com/shiney/archive/2011/07/04/2097236.html 本文在运行中有一些小小的问题,我修改了一下,将会在稳重标出 批处理文件是 ...

  7. Oracle EBS-SQL (WIP-11):检查期间任务完工记录数.sql

    select        WE.WIP_ENTITY_NAME                 任务名称,        WDJ.class_code                         ...

  8. perl 公交车查询

    <pre name="code" class="cpp">decode_json 必须是unicode形式的字符,Dump不支持显示unicode形 ...

  9. 《UNIX环境高级编程》笔记--文件访问权限和新文件、目录所有权

    1.与进程关联的用户ID和组ID 与一个进程关联的ID有一下几个: 实际用户ID和实际组ID标识我们究竟是谁.通常在一个会话间值是不会改变的,但是超级用户进程有方法改变 他们,在以后的进程控制中会进行 ...

  10. linux学习之八-Linux本机性能监控

    Linux 优化 1.看看磁盘有没有满(根目录有没有满).内存有没有满.CPU有没有满 查看磁盘有没有满,使用df -h  看看磁盘使用情况 查看内存使用  free -m 特别关注swap用了多少 ...