初学socket,c语言写的简单局域网聊天
在客户端所在的目录新建一个IP.bwj的文件,写上服务端的IP,不要带空格,保存。双方都打开一个客户端和一个服务端就可以聊天了,(可以写自己的IP,自己跟自己聊。。)没有第三方服务器,服务端所在的电脑就是服务器。程序通过AF_INET协议族,监听7464端口,没写任何错误处理,这样便于突出主要矛盾嘛。。初学见笑。。
不知道死循环应该怎么退出,客户端可以通过输入的buffer写一个退出命令,不知道服务端怎么办,调用kbhit也不行,因为recvfrom一直在监听,我再想想。。
客户端
#include<stdio.h>
#include<winsock.h>
#pragma comment (lib,"wsock32.lib") int main()
{
char IPAdd[];
FILE *readIP = fopen("IP.bwj", "r");
fscanf(readIP, "%s", IPAdd);
fclose(readIP);
char buffer[];
WSADATA data;
WSAStartup(MAKEWORD(,), &data);
SOCKET mySocket;
struct sockaddr_in server;
int len = sizeof(server);
server.sin_family = AF_INET;
server.sin_port = htons();
server.sin_addr.s_addr = inet_addr(IPAdd);
mySocket = socket(AF_INET, SOCK_DGRAM, );
while()
{
scanf("%s", buffer);
if(strcmp(buffer, "exit") == )break;
sendto(mySocket, buffer, sizeof(buffer), ,(struct sockaddr*)&server, len);
}
closesocket(mySocket);
WSACleanup();
return ;
}
服务端
#include <stdio.h>
#include <winsock.h>
#pragma comment (lib, "wsock32.lib")
int main()
{
char buffer[];
WSADATA data;
WSAStartup(MAKEWORD(,), &data);
SOCKET mySocket;
struct sockaddr_in local;
struct sockaddr_in from;
local.sin_family = AF_INET;
local.sin_port = htons();
local.sin_addr.s_addr = INADDR_ANY;
mySocket = socket(AF_INET, SOCK_DGRAM, );
bind(mySocket, (struct sockaddr*)&local, sizeof(local));
int len = sizeof(from);
while()
{
recvfrom(mySocket, buffer, sizeof(buffer), , (struct sockaddr*)&from, &len);
printf("Received from %s :\n%s\n", inet_ntoa(from.sin_addr), buffer);
}
closesocket(mySocket);
WSACleanup();
return ;
}
初学socket,c语言写的简单局域网聊天的更多相关文章
- 用Go语言实现一个简单的聊天机器人
一.介绍 目的:使用Go语言写一个简单的聊天机器人,复习整合Go语言的语法和基础知识. 软件环境:Go1.9,Goland 2018.1.5. 二.回顾 Go语言基本构成要素:标识符.关键字.字面量. ...
- socket实例C语言:一个简单的聊天程序
我们老师让写一个简单的聊天软件,并且实现不同机子之间的通信,我用的是SOCKET编程.不废话多说了,先附上代码: 服务器端server.c #include <stdio.h> #incl ...
- 用c#写的一个局域网聊天客户端 类似小飞鸽
用c#写的一个局域网聊天客户端 类似小飞鸽 摘自: http://www.cnblogs.com/yyl8781697/archive/2012/12/07/csharp-socket-udp.htm ...
- 【阿菜做实践】利用go语言写一个简单的Pow样例
本篇博客的主要内容是用go写一个简单的Proof-of-Work共识机制,不涉及到网络通信环节,只是一个本地的简单demo.开发IDE用的是JB Golang. 整个项目的文件结构如下: PoWdem ...
- 用c语言写的简单计算器
这是自己在学习C语言,凭借自己的兴趣,将课本的知识运用后整理的关于C语言计算器的代码.计算器实现的功能有:加.减.乘.除.求余.功能简单,但对于初学者的我来说能把它写出来,排除每个错误依旧是个难题.前 ...
- 用python语言写一个简单的计算器
假如我们有这样一个式子: 1 - 2 * ( (60-30 +(-40/5) * (9-2*5/3 + 7 /3*99/4*2998 +10 * 568/14 )) - (-4*3)/ (16-3*2 ...
- nc 局域网聊天+文件传输(netcat)
nc 局域网聊天+文件传输 nc的全程是netcat,这个工具非常好用. 有时候我们需要在局域网内传送一些文本消息或者文件的时候,通常的做法是安装一些局域网通讯软件,然后来做.其实不必要这样,使用nc ...
- 在windows下用C语言写socket通讯实例
原文:在windows下用C语言写socket通讯实例 From:Microsoft Dev Center #undef UNICODE #define WIN32_LEAN_AND_MEAN #in ...
- C# Socket编程实现简单的局域网聊天器
目录 前言 编码 服务端监听接口 客户端连接接口 文字发送接口 文件发送接口 信息接收接口(文字与文件) 使用 注意事项 源码 前言 最近在学习C# Socket相关的知识,学习之余,动手做了一个简单 ...
随机推荐
- Web资源文件的加载
一.关于页面跳转的一下几种方法: package com.gqx.load; import java.io.IOException; import java.io.PrintWriter; impor ...
- MobilePhone正则表达式
电话号码正则表达式(支持手机号码,3-4位区号,7-8位直播号码,1-4位分机号) ((\d{11})|^((\d{7,8})|(\d{4}|\d{3})-(\d{7,8})|(\d{4}|\d{3} ...
- 【转】android的startActivityForResult学习心得
http://blog.csdn.net/yanzi1225627/article/details/7800529 从昨晚到现在终于调试通了一个startActivityForResult的例子,网上 ...
- [PHP] csv to xml
<?php error_reporting(E_ALL | E_STRICT); ini_set('display_errors', true); ini_set('auto_detect_li ...
- 懂,你的App生,不懂,死!
近期有一些开发人员.创业公司的人加我微信viyi88,咨询一些关于自己App的事情.被问得最多的可能就是:"我的App怎样推广添加下载量?"而且信誓旦旦地说自己的App做得非常好, ...
- struts2操作pojo之小工程struts2ActionPOJO
下面的源码和操作步骤依据java web整合开发王者归来第16章,16.7 Action中使用POJO:p464 pojo:就是javabean的意思,下面就是struts2操作javabean代码过 ...
- Coordinate System
Coordinate System Introduction of Different Coordinate Systems Cartesian Coordinate System UI Coordi ...
- ajax大数据排队导出+进度条
描述 :我们现在有很多数据,分表存放,现在需要有精度条的导出.最后面有完整源码. 效果图:
- VS2010 Web项目需要缺少的Web组件才能加载
用记事本打开 .csproj 文件,找到<UseIIS>True</UseIIS>改为<UseIIS>False</UseIIS> ,重新加载项目即可.
- 插件GsonFormat快速实现JavaBean
转自:http://blog.csdn.net/dakaring/article/details/46300963#comments 安装方法 方法一: 1.Android studio File-& ...