http://blog.chinaunix.net/uid-24015214-id-2644174.html
/*server.c*/
#include <string.h>
#include <stdio.h>
#include <netinet/in.h>
#include <stdlib.h> #define SERV_PORT 8000 int main()
{
int sockfd,n,servaddr_len;
char * server_ip = "127.0.0.1";
char buf[];
struct sockaddr_in server,client; sockfd = socket (AF_INET,SOCK_DGRAM,); bzero(&server,sizeof(server));
server.sin_family = AF_INET;
server.sin_addr.s_addr = inet_addr(server_ip);
server.sin_port = htons(SERV_PORT); servaddr_len = sizeof(server); bind(sockfd,(struct sockaddr *) &server,servaddr_len);
listen(sockfd,);
while()
{
printf("等待读取数据.......\n"); servaddr_len = sizeof(client);
n = read(sockfd,buf,sizeof(buf));
write(sockfd,buf,n);
printf("读取的数据为:%s\n",buf);
bzero(buf,sizeof(buf));
}
close(sockfd);
return ;
}
<?php
$server_ip="127.0.0.1";
$port = 8000;
if($_POST['submit'])
{
$buf=trim($_POST['buf']);
$sockfd=socket_create(AF_INET,SOCK_DGRAM,SOL_UDP)or die("创建失败");
socket_connect($sockfd,$server_ip,$port)or die("连接错误");
socket_write($sockfd,$buf,strlen($buf))or die("写入错误"); socket_read($sockfd,$buf,80);
echo $buf;
$buf="";
socket_close($sockfd);
}
?>
<form action="client.php" method="post">
请选则发送方式:<br><input type=text name="buf">
<input type=submit name="submit" value="发送">
</form>
/*server.c*/
#include <string.h>
#include <stdio.h>
#include <netinet/in.h>
#include <stdlib.h> #define SERV_PORT 8000 int main()
{
int sockfd,n,servaddr_len,client_len,connfd;
char * server_ip = "127.0.0.1";
char buf[];
struct sockaddr_in server,client; sockfd = socket (AF_INET,SOCK_STREAM,); bzero(&server,sizeof(server));
server.sin_family = AF_INET;
server.sin_addr.s_addr = inet_addr(server_ip);
server.sin_port = htons(SERV_PORT); servaddr_len = sizeof(server);
client_len=sizeof(client); bind(sockfd,(struct sockaddr *) &server,servaddr_len);
listen(sockfd,);
while()
{
bzero(buf,sizeof(buf));
printf("等待读取数据.......\n");
connfd=accept(sockfd,(struct sockaddr *)&client,&client_len);
n = read(connfd,buf,sizeof(buf));
// write(connfd,buf,n);
printf("读取的数据为:%s\n",buf); }
close(sockfd);
return ;
}
<?php
$server_ip="127.0.0.1";
$port = 8000;
if($_POST['submit'])
{
$buf=trim($_POST['buf']);
$sockfd=socket_create(AF_INET,SOCK_STREAM,SOL_TCP)or die("创建失败");
socket_connect($sockfd,$server_ip,$port)or die("连接错误");
socket_write($sockfd,$buf,strlen($buf))or die("写入错误"); $a=socket_read($sockfd,80);
echo $a;
$buf="";
socket_close($sockfd);
}
?>
<form action="tcpclient.php" method="post">
请选则发送方式:<br><input type=text name="buf">
<input type=submit name="submit" value="发送">
</form>
linux中c语言和php语言通信代码UDP&TCP的更多相关文章
-
在linux中安装git,并将代码发布到github
楼主Git小白,今天刚刚学习了git,虽然在工作中也许用不到,但是在学习的时候肯定会用到的,毕竟一个程序员首先就要整理自己的知识点,将美丽的代码分享与大家. 楼主是将Git安装在阿里云的centos7 ...
-
linux中history加入显示时间命令代码
source 空格 配置文件,则配置立即生效,这里的soruce也可以用英文状态下的点即“.”代替 历史命令history -w将现在的命令记录写入到history里面 如果在history里面加上时 ...
-
linux grep find查找文件夹、代码中的某行/字符串
本文转载于:https://blog.csdn.net/Mr_Cat123/article/details/80541658 在Linux中,由于文件很多,代码很长,可能我们只知道其中的一两个字符串, ...
-
Linux中的两个经典宏定义:获取结构体成员地址,根据成员地址获得结构体地址;Linux中双向链表的经典实现。
倘若你查看过Linux Kernel的源码,那么你对 offsetof 和 container_of 这两个宏应该不陌生.这两个宏最初是极客写出的,后来在Linux内核中被推广使用. 1. offse ...
-
Linux 中使用 QT Charts 显示温度传感器
前一篇笔记中实现了QT的Label控件显示CPU的温度,只能显示当前的温度,并不能反映CPU温度的变化情况,现在来实现使用QT Charts的曲线图实现一个实时曲线来显示CPU的温度. 添加对Qt C ...
-
Linux中查找最耗性能的JAVA代码
在这里总结一下查找Linux.Java环境下最耗CPU性能的代码段的方法.基本上原理就是使用top命令查看最耗cpu的进程和线程(子进程).使用jstack把java线程堆栈给dump下来.然后,在堆 ...
-
C语言和C++中动态申请内存
在C语言和C++的动态内存的使用方法是不同的,在C语言中要使用动态内存要包含一个头文件即 #include<malloc.h> 或者是#include<stdlib.h> ...
-
Linux中 SonarQube代码质量管理平台以及C++插件安装
SonarQube是管理代码质量一个开源平台,可以快速的定位代码中潜在的或者明显的错误. SonarQube安装 1.环境准备 (1)sonarQube 下载地址https://www.sonarqu ...
-
C语言和sh脚本的杂交代码
在网上看到了一个把 C语言和bash杂并起来的例子,这个示子如下所示.在下面这个例子中,我们把脚本用#if 0这个预编译给起来,这样就不会让其编译到C语言中了. #if 0 echo "He ...
随机推荐
-
Android数据存储-文件操作
一.预备知识 1.Android中的MVC设计模式 MVC (Model-View-Controller):M是指逻辑模型,V是指视图模型,C则是控制器.一个逻辑模型可以对于多种视图模型,比如一批统计 ...
-
让android项目支持boost 支持c++11
在Application.mk 里增加-D__GLIBC__ 让项目支持boost 增加 -std=c++11 让项目支持c++11 (3.x的cocos本身已经支持了的) 看起来这样: APP_S ...
-
认为C/C++很难理解、找工作面试笔试,快看看这本书!
假设你是C/C++谁刚开始学习,看这本书.因为也许你读其他的书还不如不看.一定要选择一本好书. 假设你正在准备工作,请认真看这本书,由于这本书会教会你工作中必备的知识,相信你即将面临的语法类题目不会超 ...
-
消息队列、OSS常用操作封装
public class MessageQueue { #region Private Properties private const string _accessKeyId = "&qu ...
-
JVM调优日志解析分析
一.调优参数设置 JVM的GC日志的主要参数包括如下几个: -XX:+PrintGC 输出GC日志 -XX:+PrintGCDetails 输出GC的详细日志 -XX:+PrintGCTimeStam ...
-
JS 随机排序算法
https://www.cnblogs.com/getdaydayup/p/6592154.html 使用JS编写一个方法 让数组中的元素每次刷新随机排列 法一: var arr =[1,2,3,4] ...
-
Seqlite学习
之前没有接触过数据库编程,尼玛,面试神码的最恶心了,非得神码都懂点,好吧,最近开始研究下,先从SQLite开始吧,贴上找到SQliteDB.之后搜集资料,慢慢学习!
-
MVC4升级到MVC5未能加载文件或程序集System.Web.WebPages.Razor, Version=3.0.0.0
首先,我并没有升级他,头一天还是好好的,用的都是2.0.0.0版本的,今天来打开就出现了这个错误: 未能加载文件或程序集“System.Web.WebPages.Razor, Version=3.0. ...
-
Node + vue 实现移动官网
简介 使用 Node + vue 对公司的官网进行了一个简单的移动端的实现. 源码 https://github.com/wx1993/node-vue-fabaocn 效果 组件 轮播图(使用 vu ...
-
centos安装gcc
1.安装gcc基本开发工具环境 yum groupinstall 'Development Tools' 2.安装完成后查看安装是否成功 whereis gcc 3.查看gcc版本 gcc --ver ...