Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
5aa0d105
Commit
5aa0d105
authored
Sep 15, 2010
by
Antoine Pitrou
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Improve docs for socket.makefile() and SocketIO
parent
872b79d0
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
26 additions
and
4 deletions
+26
-4
Doc/library/socket.rst
Doc/library/socket.rst
+3
-4
Lib/socket.py
Lib/socket.py
+23
-0
No files found.
Doc/library/socket.rst
View file @
5aa0d105
...
@@ -622,10 +622,9 @@ correspond to Unix system calls applicable to sockets.
...
@@ -622,10 +622,9 @@ correspond to Unix system calls applicable to sockets.
arguments are interpreted the same way as by the built-in :func:`open`
arguments are interpreted the same way as by the built-in :func:`open`
function.
function.
The returned file object references a :cfunc:`dup`\ ped version of the
Closing the file object won't close the socket unless there are no
socket file descriptor, so the file object and socket object may be
remaining references to the socket. The socket must be in blocking mode
closed or garbage-collected independently. The socket must be in
(it can not have a timeout).
blocking mode (it can not have a timeout).
.. method:: socket.recv(bufsize[, flags])
.. method:: socket.recv(bufsize[, flags])
...
...
Lib/socket.py
View file @
5aa0d105
...
@@ -54,6 +54,8 @@ except ImportError:
...
@@ -54,6 +54,8 @@ except ImportError:
errno
=
None
errno
=
None
EBADF
=
getattr
(
errno
,
'EBADF'
,
9
)
EBADF
=
getattr
(
errno
,
'EBADF'
,
9
)
EINTR
=
getattr
(
errno
,
'EINTR'
,
4
)
EINTR
=
getattr
(
errno
,
'EINTR'
,
4
)
EAGAIN
=
getattr
(
errno
,
'EAGAIN'
,
11
)
EWOULDBLOCK
=
getattr
(
errno
,
'EWOULDBLOCK'
,
11
)
__all__
=
[
"getfqdn"
,
"create_connection"
]
__all__
=
[
"getfqdn"
,
"create_connection"
]
__all__
.
extend
(
os
.
_get_exports_list
(
_socket
))
__all__
.
extend
(
os
.
_get_exports_list
(
_socket
))
...
@@ -249,6 +251,13 @@ class SocketIO(io.RawIOBase):
...
@@ -249,6 +251,13 @@ class SocketIO(io.RawIOBase):
self
.
_writing
=
"w"
in
mode
self
.
_writing
=
"w"
in
mode
def
readinto
(
self
,
b
):
def
readinto
(
self
,
b
):
"""Read up to len(b) bytes into the writable buffer *b* and return
the number of bytes read. If the socket is non-blocking and no bytes
are available, None is returned.
If *b* is non-empty, a 0 return value indicates that the connection
was shutdown at the other end.
"""
self
.
_checkClosed
()
self
.
_checkClosed
()
self
.
_checkReadable
()
self
.
_checkReadable
()
while
True
:
while
True
:
...
@@ -260,17 +269,28 @@ class SocketIO(io.RawIOBase):
...
@@ -260,17 +269,28 @@ class SocketIO(io.RawIOBase):
raise
raise
def
write
(
self
,
b
):
def
write
(
self
,
b
):
"""Write the given bytes or bytearray object *b* to the socket
and return the number of bytes written. This can be less than
len(b) if not all data could be written. If the socket is
non-blocking and no bytes could be written None is returned.
"""
self
.
_checkClosed
()
self
.
_checkClosed
()
self
.
_checkWritable
()
self
.
_checkWritable
()
return
self
.
_sock
.
send
(
b
)
return
self
.
_sock
.
send
(
b
)
def
readable
(
self
):
def
readable
(
self
):
"""True if the SocketIO is open for reading.
"""
return
self
.
_reading
and
not
self
.
closed
return
self
.
_reading
and
not
self
.
closed
def
writable
(
self
):
def
writable
(
self
):
"""True if the SocketIO is open for writing.
"""
return
self
.
_writing
and
not
self
.
closed
return
self
.
_writing
and
not
self
.
closed
def
fileno
(
self
):
def
fileno
(
self
):
"""Return the file descriptor of the underlying socket.
"""
self
.
_checkClosed
()
self
.
_checkClosed
()
return
self
.
_sock
.
fileno
()
return
self
.
_sock
.
fileno
()
...
@@ -283,6 +303,9 @@ class SocketIO(io.RawIOBase):
...
@@ -283,6 +303,9 @@ class SocketIO(io.RawIOBase):
return
self
.
_mode
return
self
.
_mode
def
close
(
self
):
def
close
(
self
):
"""Close the SocketIO object. This doesn't close the underlying
socket, except if all references to it have disappeared.
"""
if
self
.
closed
:
if
self
.
closed
:
return
return
io
.
RawIOBase
.
close
(
self
)
io
.
RawIOBase
.
close
(
self
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment