python版:

server:

def socket_loop_server_function():
HOST = '192.168.56.1'
PORT = 21567
sk = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sk.bind((HOST, PORT))
sk.listen(1)
while True:
sock, addr = sk.accept()
sock.sendall(b'begin')
flag=True
while flag:
data=sock.recv(1024)
print("recevied:%s" % data)
if data == bytes("msg1",encoding="utf-8"):
feedback=input("please input the feedback:")
sock.send(bytes(feedback, encoding='utf-8'))
if feedback == "over":
flag=False
if data == bytes("msg3",encoding="utf-8"):
feedback = input("please input the feedback:")
sock.send(bytes(feedback, encoding='utf-8'))
if feedback == "over":
flag = False
if data == bytes("msg5",encoding="utf-8"):
feedback = input("please input the feedback:")
sock.send(bytes(feedback, encoding='utf-8'))
if feedback == "over":
flag = False
sock.close()
break
print("connect finished")
client:
def socket_loop_customer_function():
HOST = '192.168.56.1'
PORT = 21567
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect((HOST, PORT))
client.settimeout(10)
flag=True
while flag:
reveived_data=client.recv(1024)
print(reveived_data)
if reveived_data == bytes("over",encoding="utf-8"):
client.close()
flag=False
time.sleep(2)
if reveived_data == bytes("begin",encoding="utf-8"):
client.sendall(bytes('msg1', encoding="utf-8"))
if reveived_data == bytes("msg2",encoding="utf-8"):
client.sendall(bytes('msg3', encoding="utf-8"))
if reveived_data == bytes("msg4",encoding="utf-8"):
client.sendall(bytes('msg5', encoding="utf-8"))
print("connect closed") c语言版:
在windows上用codeblocks编写socket需要导入socket的库,在complier中导入libws2_32.a和libwsock32.a

代码如下:

#include <winsock2.h>

#pragma comment(lib , "ws2_32.lib")  #导入库

void socket_function(){
WSADATA wsd;
struct sockaddr_in dest;
char buf[400];
char sendbuf[400];
WSAStartup( MAKEWORD(2, 2), &wsd);           #加载库
SOCKET socketfd= socket(AF_INET, SOCK_STREAM,IPPROTO_TCP);
dest.sin_family=AF_INET;
dest.sin_port=htons(21567);
dest.sin_addr.s_addr=inet_addr("192.168.56.1");
memset(&(dest.sin_zero),0,sizeof(struct sockaddr_in));
if(connect(socketfd,(struct sockaddr*)&dest,sizeof(struct sockaddr_in)) == -1){
printf("failed %d\n",WSAGetLastError());
}
while(1){
printf("connect success\n");
recv(socketfd,buf,1024,0);
printf("buf=%s\n",buf);
// strcpy(sendbuf,"msg1");
printf("please input the msg:\n");
scanf("%s",sendbuf);
send(socketfd,sendbuf,strlen(sendbuf),0);
}
closesocket(socketfd);
WSACleanup();
}

												

socket编程python+c的更多相关文章

  1. Python Socket 编程——聊天室示例程序

    上一篇 我们学习了简单的 Python TCP Socket 编程,通过分别写服务端和客户端的代码了解基本的 Python Socket 编程模型.本文再通过一个例子来加强一下对 Socket 编程的 ...

  2. python网络编程-socket编程

     一.服务端和客户端 BS架构 (腾讯通软件:server+client) CS架构 (web网站) C/S架构与socket的关系: 我们学习socket就是为了完成C/S架构的开发 二.OSI七层 ...

  3. python学习道路(day8note)(抽象类,类的方法,异常处理,socket编程)

    1.#面向对象 #抽象接口 === 抽象类 #就是架构师给你一个架子,你们去写,如果满足不了直接报错 #python2 print("python2---抽象类".center(2 ...

  4. python socket编程详细介绍

    Python 提供了两个基本的 socket 模块. 第一个是 Socket,它提供了标准的 BSD Sockets API. 第二个是 SocketServer, 它提供了服务器中心类,可以简化网络 ...

  5. 转:python socket编程详细介绍

    Python 提供了两个基本的 socket 模块. 第一个是 Socket,它提供了标准的 BSD Sockets API. 第二个是 SocketServer, 它提供了服务器中心类,可以简化网络 ...

  6. 转:Python 的 Socket 编程教程

    这是用来快速学习 Python Socket 套接字编程的指南和教程.Python 的 Socket 编程跟 C 语言很像. Python 官方关于 Socket 的函数请看 http://docs. ...

  7. Python之路,Day8 - Socket编程进阶

    Python之路,Day8 - Socket编程进阶   本节内容: Socket语法及相关 SocketServer实现多并发 Socket语法及相关 socket概念 socket本质上就是在2台 ...

  8. Day8 - Python网络编程 Socket编程

    Python之路,Day8 - Socket编程进阶   本节内容: Socket语法及相关 SocketServer实现多并发 Socket语法及相关 socket概念 socket本质上就是在2台 ...

  9. Python 基础之socket编程(二)

    Python 基础之socket编程(二) 昨天只是对socket编程做了简单的介绍,只是把socket通信的框架搭建起来,要对其中的功能进行进一步的扩充,就来看看今天的料哈! 一.基于tcp的套接字 ...

随机推荐

  1. Ubuntu下使用Sublime text 3阅读android源代码

    一.安装Sublime text 3 Sublime Text 是一款流行的文本编辑器软件,有点类似于TextMate,跨平台,可运行在Linux,Windows和Mac OS X.也是许多程序员喜欢 ...

  2. 在windows上一键编译各种版本的protobuf(2017-12-05修改)

    所需工具 : cmake  for  windows 和  git for windows 原理:protobuf 是google的一个开源项目,其源代码在github上可以下载到,并且源码都采用cm ...

  3. SQL JOB 调用 SSIS package 权限问题

    来自: http://www.cnblogs.com/sodacc/archive/2012/11/26/2789135.html 第一次用SQL给SSIS包排JOB的时候,都会遇到这样一个问题:单独 ...

  4. HttpURLConnection读取网页文件

    一.关键代码 public class MainActivity extends Activity { TextView content; ; Handler handler = new Handle ...

  5. J2EE环境安装配置

    在下载,安装前先说下以下几个概念JDK,SDK,JRE,JVM ◆JDK Java Develop Kit (Java 开发包) ◆SDK Software Develop kit, 曾经JDK叫做J ...

  6. react-native 项目实战 -- 新闻客户端(4) -- 请求网络数据

    1.Home.js /** * 首页 */ import React, { Component } from 'react'; import { AppRegistry, StyleSheet, Te ...

  7. Linux ssh修改文件

    cd 你要修改的文件所在目录vi 你需要修改的文件名 这之后你就会进入vi编辑界面按"i"进入编辑模式正常修改就行按"ESC"进入命令模式,输入 ": ...

  8. ios 缩放图片(平铺)

    //缩放图片(平铺) - (UIImage *)resizeImage:(NSString *)imgName { UIImage *bgImage =  [UIImage imageNamed:im ...

  9. 零基础学python-1.5 第一个程序

    这一个章节我们来说说怎么建立一个python程序 1.打开idle 2.点击File->new file,然后会弹出一个编辑窗体 3.在编辑窗体里面输入命令代码 程序代码: print(&quo ...

  10. executable null\bin\winutils.exe in the Hadoop binaries.

    在windows 使用eclipse远程调用hadoop集群时抛出下面异常 executable null\bin\winutils.exe in the Hadoop binaries. 这个问题 ...